自我分配中的后增量,VS2013和GCC之间的结果不同

时间:2015-11-19 01:19:59

标签: c++ gcc visual-studio-2013 post-increment pre-increment

Post-increment within a self-assignment中的代码,使用C ++进行测试。

但是,我在VS2013GCC4.8.4

之间得到了不同的结果
int cc = 42;
cc = cc++;
cout << cc << endl;

VS2013的结果为43,但GCC的结果为42。这让我很困惑......

哪个结果是正确的?

1 个答案:

答案 0 :(得分:2)

This is textbook undefined behavior。编译器可以做任何想做的事情。根据语言规范,如果选择的话,它可以停止并着火;很高兴他们只是做了一些与你喂他们的废话模糊相关的事情。