如果我有以下代码:
int n=5;
if (n++>=6){
cout<<"Yay";
}
else cout<<"No";
我把它和这个进行比较:
int n=5;
if (++n>=6){
cout<<"Yay";
}
else cout<<"No";
为什么两种情况下的输出不同?在遇到不等式之前,n不是在两种情况下都在递增(后/前递增)吗?
后置增量何时生效——是否就在遇到下一条语句之前?如果是这种情况,n值是否会保持5,直到整个不等式被评估?
我的另一个问题是if条件中的递增会影响外部变量的值吗?如果我有第一个代码(后递增)并且我打印n,n会返回6吗?
两者是不同的东西。n表示它首先将n递增1并在语句中使用更新值,而在n中它在语句中使用相同的n值,然后将n递增1