它对C语言中的(; 1;)意味着什么?

cok*_*oke -2 c for-loop

for(;1;)在C语言中它意味着什么?

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

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

Vla*_*cow 6

根据C标准(6.8.5.3 for声明)

2可以省略clause-1和expression-3.省略的表达式-2由非零常量替换.

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

所以这两个陈述

for(;1;) { /*...*/ }
Run Code Online (Sandbox Code Playgroud)

for(;;) { /*...*/ }
Run Code Online (Sandbox Code Playgroud)

是完全相同的.

在我看来,写作要好得多

while ( 1 ) { /*...*/ }
Run Code Online (Sandbox Code Playgroud)

而不是上面显示的语句.