在c中放置无限条件

时间:2014-11-30 00:50:22

标签: c infinite-loop

我正在运行一个带有无限for循环的C程序:

for(;;)
{
    //Statement
}

为什么它运行无限次,即使我们没有指定循环的初始化,条件和增量?

“空白”值的含义是什么?

3 个答案:

答案 0 :(得分:7)

这是for循环的基本语法。

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

根据K& R的 C编程语言,可以省略子句-1和表达式-3。省略的表达式-2被非零常量替换。而且正如我们所知,任何非零值都意味着" true"在C.

P.S。:虽然K& R书已经过时了,但很多人认为它是C的圣经。

答案 1 :(得分:5)

循环仅在条件为false时中断。因为没有条件,所以没有任何东西可以是假的,并且循环不会中断。

答案 2 :(得分:2)

for(;;)语句与while相同。如果你"转换" for(;;)它将是这样的:

for(i = 0; i < n; i++)
{
    //Do stuff
}

到这个

i = 0;
while( i < n )
{
    //Do stuff
    i++;
}

因此,如果中间语句中没有任何内容,它将永远运行

编辑:

在循环的第三部分,你可以做任何事情。你甚至可以这样:

for(i = 0; i < n; i++, /*Do stuff*/){}