为什么(1; 2; 3)是无限循环?

时间:2015-08-26 11:05:20

标签: c for-loop infinite-loop

在打印hello的程序中:

for (1; 2; 3) 
printf ("Hello"); 

为什么输出显示无限循环?不仅仅for ( ; ; )是一个无限循环吗?

2 个答案:

答案 0 :(得分:4)

在C中,所有非零整数都被视为真。所以在这里,

for (1; 2; 3) 

2是一个非零整数,所以它是一个无限循环。是的,

for ( ; ; )

也是一个无限循环。

答案 1 :(得分:2)

一旦第二个语句的计算结果为0,

for将暂停。(在此上下文中,空语句计为非零)。

你永远不会。 <{1}},for(1; 2; 3)for(; 2;)不会停止。