标签: c++ visual-studio gcc operators
我一直在不同的编译器上运行此代码。在Microsft VS.它打印1,但在gcc,它打印0.根据标准c ++的结果是什么。如果这段代码也有标准化,我也不会这样做。
int a=0; a=a++; cout << a<< endl;
答案 0 :(得分:2)
a=a++是undefined behavior。不仅没有标准的定义,甚至不能保证在不同的运行之间总是做同样的事情。
a=a++
现在可以打印0,下次打印1,并在第三次尝试时使程序崩溃。