我在阅读 C 代码时注意到一个奇怪的语句:
for (;;) {
// some code
}
这是我第一次看到这种语法,但我认为这相当于:
while(true) {
// some code
}
结果显然是相同的(就逻辑而言)。
那为什么要这样写呢? 编译时有区别吗?
最佳答案
两者的工作原理是一样的! 如果我们遵循 for 循环的语义 然后 for 循环的工作方式如下:
for(_INITIALIZATION;_CONDITIONN_CHECKING;_OPEARTION){
//Some code Here
}
现在 for 循环中的每一项都是相互独立的。 所以 for(;;) 意味着没有任何条件可以打破循环。 定义无限 for 循环的其他一些方法是
a)for(;;)
b)for(_INITIALIZATION;;)
c)for(;;operations)
d)for(_INITIALIZATION;;_OPERATIONS)
E)for(_INITIALIZATION;1;_OPERATIONS)
关于c - for 循环中的空语句 VS 无限 while,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33755521/