程序代码:
int main()
{
int i;
for (i = 0; i < 0, 5; i++)
printf("%d ", i);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
上面的循环被无限次执行。
什么i<0,5意思,如何评价?
根据运算符优先级,这被解释为(i < 0), 5。逗号运算符评估所有语句,但丢弃除最后一个以外的值。因此,出于实际目的,循环读取为
for (int i = 0; 5; ++i) {...}
因为非零值true在 C/C++ 中被解释,这等效于:
for (int i = 0; true; ++i) {...}
这是一个无限循环。