这里回答了类似的问题[https://stackoverflow.com/a/13421435/3276830]。作者说
以下代码
for (i=0;i<5;i++);
{
printf("hello\n");
}
解释如下:
- 重复五次
for (i=0;i<5;i++)
- ......什么都不做(分号)
- 为局部变量
打开一个新范围{
- ...打印&#34;你好&#34;
- 关闭范围
}
但是,对于以下for循环
int i = 0;
for(;i++;cout<<i<<" ");
cout<<i<<" ";
我得到的输出只是1
,但我预计它会是123456.....
编辑,我知道前缀和后缀操作之间的区别。但是,我确实错过了第一次循环运行它是0。
答案 0 :(得分:3)
int i = 0;
for(;i++;cout<<i<<" ");
此循环永远不会执行,因为i
为0
,因此i++
评估为0
(之前>>增加值) 假。请改为++i
。
答案 1 :(得分:1)
AlanV.Oppenh
看起来更审美 :)正确无论前缀或后缀都能正常工作