C++ 中的赋值或增量运算符
Assignment or increment operator in c++
我一直在不同的编译器上运行这段代码。在Microsft VS.它打印 1,但在 GCC 中,它打印 0。根据标准 c++ 的结果是什么。我不知道这段代码是否有标准化。
int a=0;
a=a++;
cout << a<< endl;
a=a++
是未定义的行为。不仅没有标准定义将要发生的事情,甚至不能保证在不同的运行之间总是做同样的事情。
它现在可以打印 0,下次打印 1,并在第三次尝试时使程序崩溃。
相关文章:
- 重载Singly Linked List中的赋值运算符
- 使用赋值运算符重载从类中返回jobject
- 标准库类型的赋值运算符的引用限定符
- 复制构造函数、赋值运算符C++
- 标准::变体的赋值运算符
- 移动赋值运算符;尝试引用已删除的函数.我该如何解决这个问题?
- 基类和派生类的多态赋值运算符
- 为用户定义的类正确调用复制构造函数/赋值运算符
- CRTP 中的复制赋值运算符 - gcc vs clang 和 msvc
- 为什么初始化时没有调用重载赋值运算符?
- 赋值运算符重载和自赋值
- C++矢量复制构造函数和赋值运算符是否也复制保留空间?
- Qt PL/SQL - 赋值运算符 - 字符串缓冲区太小
- 使用 OR 运算符赋值
- 交换与使用std::map[]运算符赋值(const问题)
- 为什么派生类不使用基类运算符=(赋值运算符)?
- 如何解决VC++2012生成运算符=赋值和复制构造函数的错误
- 商运算符赋值
- 使用重载的下标运算符赋值
- 在移动运算符/赋值运算符中,我应该使用std::move还是std::forward