我在阅读C代码时注意到一个奇怪的陈述:
for (;;) {
// some code
}
这是我第一次看到这种语法,但我认为这相当于:
while(true) {
// some code
}
结果显然是相同的(就逻辑而言)。
那为什么这样写呢? 编译时有区别吗?
答案 0 :(得分:1)
他们两个都是一样的! 如果我们遵循for循环的语义 然后for循环就像这样:
for(_INITIALIZATION;_CONDITIONN_CHECKING;_OPEARTION){
//Some code Here
}
现在for循环中的每个术语都是相互独立的。 所以对于(;;)意味着没有任何条件可以打破循环。 定义无限for循环的其他方法是
a)for(;;)
b)for(_INITIALIZATION;;)
c)for(;;operations)
d)for(_INITIALIZATION;;_OPERATIONS)
E)for(_INITIALIZATION;1;_OPERATIONS)
答案 1 :(得分:0)
是的,与while(true)