如果像这样写c for for循环会输出什么?

时间:2014-04-29 20:26:10

标签: c

我知道for循环语法就像:

for(initialise; condition ; increament/decreament)

但以下内容将是什么:

for( ; ; )
{
printf("hello world");
}

3 个答案:

答案 0 :(得分:2)

这与C的标准有关。

  

6.8.5.3 for语句

     

声明

     

for(clause-1; expression-2; expression-3)statement

     

表现如下:表达式表达式-2是控制   在每次执行循环体之前计算的表达式。   表达式-3被评估为之后的空表达式   循环体的每次执行。如果第1条是声明,那么   它声明的任何标识符的范围是其余的标识符   声明和整个循环,包括其他两个表达式;   它是在第一次评估之前按执行顺序到达的   控制表达。如果子句-1是表达式,那么它是   在第一次评估之前评估为空表达式   控制表达。

     

可以省略子句-1和表达式-3。 省略的表达式-2   被非零常数替换。

<强>参考

  1. WG14 / N1256委员会草案ISIS / IEC 9899:TC3 ,访问2014-04-29,<http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1256.pdf>
  2. 为什么for循环的条件可以为空?,已访问2014-04-29,<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");
}

也使用缩进。它有助于提高可读性(在您的示例中不是问题,但是如果问题更严重则会出现问题。