引用this问题。
我已经多次尝试过这个相同的程序,并且我看到其他人(一群 friend )使用相同的逻辑进行交换,但他们都没有发现错误的输出。我想问一下,是否有可能由于序列点而导致输出错误。
最佳答案
C++11 不再有序列点,但是,该行是未定义的行为,因为 b
的修改相对于它的读取没有排序。
这意味着任何事情都可能发生;不过,一般来说,主要问题是编译器可能会重新排序事件的确切顺序。
关于c++ - 这个表达式 a = a + b - ( b = a );由于 C++ 中的序列点而给出错误的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35340480/