c ++中的赋值或递增运算符

时间:2017-06-09 13:45:28

标签: c++ visual-studio gcc operators

我一直在不同的编译器上运行此代码。在Microsft VS.它打印1,但在gcc,它打印0.根据标准c ++的结果是什么。如果这段代码也有标准化,我也​​不会这样做。

int a=0;
a=a++;
cout << a<< endl;

1 个答案:

答案 0 :(得分:2)

a=a++undefined behavior。不仅没有标准的定义,甚至不能保证在不同的运行之间总是做同样的事情。

现在可以打印0,下次打印1,并在第三次尝试时使程序崩溃。