for声明:
for语句是一个循环语句,其结构允许简单的变量初始化,表达式测试和变量修改。进行计数器控制的循环非常方便。这是for语句的一般形式:
for (initialize; test; step)
statement
[...]
空声明:
该空语句只是单独一个分号。
;
空语句不执行任何操作。它不会在任何地方存储值。它不会在程序执行过程中花费时间。
通常,空语句用作循环语句的主体,或用作for语句中的一个或多个表达式。这是一个for语句的示例,该语句使用null语句作为循环的主体(并且还计算n的整数平方根,只是为了好玩):
for (i = 1; i*i < n; i++)
;
这是另一个使用null语句作为for循环的主体并产生输出的示例:
for (x = 1; x <= 5; printf ("x is now %d\n", x), x++)
;
有时也使用null语句来跟随标签,否则标签将成为块中的最后一件事。
在你的情况下,;是空语句中的for声明:
int func_prim (int zahl) {
int count;
if (zahl < 0)
return -1;
for (count = 2; zahl % count != 0 && zahl >= count; count++)
;
if (count == zahl)
return 1;
return 0;
}
没有它,theif成为for语句:
int func_prim (int zahl) {
int count;
if (zahl < 0)
return -1;
for (count = 2; zahl % count != 0 && zahl >= count; count++)
if (count == zahl)
return 1;
return 0;
}
因此,行为有所不同。