【发布时间】:2019-03-27 10:56:39
【问题描述】:
执行下面的代码后发生了什么;
int x = 10;
x += x--;
我期待结果 19(将 x 添加到 x,然后将 x 减 1)但结果 20。它在窗帘后面是如何工作的?感谢您的回答。
【问题讨论】:
-
你为什么要写这样的代码?
-
我得到了 19 个结果。
-
@Cepheus 在 clang、gcc 和 MSVC 上相同:godbolt.org/z/MPrtRN
-
这是未定义的行为。您可能会得到 19,但不能保证一定会。 GCC 将为
int main() { int x = 10; x += x--; }报告“警告:未排序的修改和访问‘x’[-Wunsequenced]”。 -
@Stephane 投票的目的是标记答案不正确。此处被否决的所有答案(以及现在已删除的答案)都是错误的。努力不会得到分数;你写正确的答案得到积分。
标签: c++ operators post-increment