提问者:小点点

关于后增量和前增量运算符的查询


如果我有以下代码:

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吗?


共1个答案

匿名用户

两者是不同的东西。n表示它首先将n递增1并在语句中使用更新值,而在n中它在语句中使用相同的n值,然后将n递增1