【发布时间】:2017-06-09 13:45:28
【问题描述】:
我一直在不同的编译器上运行这段代码。在微软 VS。它打印 1,但在 gcc 中,它打印 0。根据标准 c++,结果是什么。如果这段代码也有标准化,我不知道。
int a=0;
a=a++;
cout << a<< endl;
【问题讨论】:
-
C++ 标签 wiki 明确 告诉你不要问这个。
标签: c++ visual-studio gcc operators
我一直在不同的编译器上运行这段代码。在微软 VS。它打印 1,但在 gcc 中,它打印 0。根据标准 c++,结果是什么。如果这段代码也有标准化,我不知道。
int a=0;
a=a++;
cout << a<< endl;
【问题讨论】:
标签: c++ visual-studio gcc operators
a=a++ 是 undefined behavior。不仅对于会发生什么没有标准定义,甚至不能保证在不同的运行之间总是做同样的事情。
它现在可以打印 0,下次打印 1,并在第三次尝试时使您的程序崩溃。
【讨论】: