C++ 中的赋值或增量运算符

Assignment or increment operator in c++

本文关键字:运算符 赋值 C++      更新时间:2023-10-16

我一直在不同的编译器上运行这段代码。在Microsft VS.它打印 1,但在 GCC 中,它打印 0。根据标准 c++ 的结果是什么。我不知道这段代码是否有标准化。

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

a=a++是未定义的行为。不仅没有标准定义将要发生的事情,甚至不能保证在不同的运行之间总是做同样的事情。

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