c++ - 这个表达式 a = a + b - ( b = a );由于 C++ 中的序列点而给出错误的输出?

标签 c++

引用this问题。

我已经多次尝试过这个相同的程序,并且我看到其他人(一群 friend )使用相同的逻辑进行交换,但他们都没有发现错误的输出。我想问一下,是否有可能由于序列点而导致输出错误。

最佳答案

C++11 不再有序列点,但是,该行是未定义的行为,因为 b 的修改相对于它的读取没有排序。

这意味着任何事情都可能发生;不过,一般来说,主要问题是编译器可能会重新排序事件的确切顺序。

关于c++ - 这个表达式 a = a + b - ( b = a );由于 C++ 中的序列点而给出错误的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35340480/

相关文章:

c++ - 对象动态数组 Sans Vector 类

c++ - 是否可以在 c++11 中扩展 std::tie 以接受占位符?

c++ - 在 Haxe NME 中找不到 CPP 目标的 RTTI 属性

c++ - 如何在 OpenCV C++ 中压缩 TIFF 格式的图像?

c++ - 依次打开两个文件

c++ - 读取文件并仅提取特定部分

c++ - 在 Linux 上监控电池状态

c++ - QML 中的 ListView 显示在我窗口中其他对象的下方

c++ - 检查 std::map 的迭代器是否指向倒数第二个元素

c++ - 循环中的模板元编程?