繁体   English   中英

for(;1;) 在 C 语言中是什么意思?

[英]What does for(;1;) mean in the C language?

for(;1;)在 C 中是什么意思?

在无限循环的意义上,它是否与for(;;)相同?

我知道输入1的位置是变量的条件部分,但在这个for循环中,我不相信它确实是一个无限循环。

根据 C 标准(6.8.5.3 for 语句)

2 子句 1 和表达式 3 都可以省略。 省略的表达式 2 由非零常量替换。

所以实际上你自己而不是编译器用非零常量 1 替换了省略的表达式 2。

所以这两个陈述

for(;1;) { /*...*/ }

for(;;) { /*...*/ }

是完全等价的。

在我看来,写得更好

while ( 1 ) { /*...*/ }

而不是上面显示的语句。

被说服。 For 循环一直工作,直到表达式的条件部分变为假。 而在C 1 的意思是“ true ”,很明显,它永远不会变成假。

基本上,你的两个表达式 for(;1;) 和 for(;;) 都会给你无限循环。

MSDN

for 语句的所有表达式都是可选的; 例如,以下语句用于编写无限循环:

for (; ; )
{
    // ...
}

所以循环条件中的任何条件都不会给你一个无限循环。

关于你的另一个问题 for(;1;): 你不相信它会给你无限循环。

它必须无限循环,因为条件语句的结果不等于 0。

以下是一些示例:

 for(;1;)   //Infinite loop
 for(;0;)       //Loop will not execute at all
 for(;-1;)       //Infinite loop.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM