我知道for循环语法就像:
for(initialise; condition ; increament/decreament)
但以下内容将是什么:
for( ; ; )
{
printf("hello world");
}
答案 0 :(得分:2)
这与C的标准有关。
6.8.5.3 for语句
声明
for(clause-1; expression-2; expression-3)statement
表现如下:表达式表达式-2是控制 在每次执行循环体之前计算的表达式。 表达式-3被评估为之后的空表达式 循环体的每次执行。如果第1条是声明,那么 它声明的任何标识符的范围是其余的标识符 声明和整个循环,包括其他两个表达式; 它是在第一次评估之前按执行顺序到达的 控制表达。如果子句-1是表达式,那么它是 在第一次评估之前评估为空表达式 控制表达。
可以省略子句-1和表达式-3。 省略的表达式-2 被非零常数替换。
<强>参考强>
<http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1256.pdf>
<https://stackoverflow.com/questions/13366290/why-can-the-condition-of-a-for-loop-be-left-empty>
答案 1 :(得分:0)
for
循环中未指定任何条件,因此循环将永远运行。
https://www.princeton.edu/~achaney/tmve/wiki100k/docs/Infinite_loop.html
答案 2 :(得分:0)
这将永远循环,每次通过循环打印Hello World。实现同样结果的另一种方法是:
while(1){
printf("Hello World");
}
也使用缩进。它有助于提高可读性(在您的示例中不是问题,但是如果问题更严重则会出现问题。