此Post-increment within a self-assignment中的代码,使用C ++进行测试。
但是,我在VS2013
和GCC4.8.4
int cc = 42;
cc = cc++;
cout << cc << endl;
VS2013
的结果为43
,但GCC
的结果为42
。这让我很困惑......
哪个结果是正确的?
答案 0 :(得分:2)
This is textbook undefined behavior。编译器可以做任何想做的事情。根据语言规范,如果选择的话,它可以停止并着火;很高兴他们只是做了一些与你喂他们的废话模糊相关的事情。