我正在运行一个带有无限for
循环的C程序:
for(;;)
{
//Statement
}
为什么它运行无限次,即使我们没有指定循环的初始化,条件和增量?
“空白”值的含义是什么?
答案 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*/){}