我尝试测试以下代码,发现循环永远不会执行:
int i=0;
for(;i++;cout<<i)
{
if(i==5)
break;
}
我从以下帖子中读到了关于cout返回的值的以下帖子:
What's the difference between cout<<cout and cout<<&cout in c++?
但是,我无法弄清楚原因。有人可以帮我这个。
答案 0 :(得分:3)
int i = 0;
for (; i++; cout << i)
在第一个循环中,i++
在增量发生之前被评估为0,从而终止循环。
答案 1 :(得分:2)
第一次检查循环退出条件(i++
)时,i
的值为0(即为假)。因此它永远不会进入循环。
i++
是后期增量。所以i
变为1,但在循环退出条件中检查的值是增量前的值 - 即0。