意外的C ++故障 - 增量行为

时间:2014-06-07 19:50:31

标签: c++

当我运行此代码时,var" tarkiz"仍然是1。 有谁可以请你解释为什么会这样?是不是应该首先执行赋值(tarkiz = tarkiz),然后将值增加到2而不是1?

#include <iostream>
using namespace std;

int main() {
    // your code goes here
    int tarkiz = 1;
    tarkiz = tarkiz++;
    cout<<tarkiz<<endl;
    return 0;
}

1 个答案:

答案 0 :(得分:2)

tarkiz = tarkiz++;是未定义的行为。要修复它,请改为编写tarkiz++;

有关详细信息,请参阅this explanation