【发布时间】:2016-05-02 18:51:37
【问题描述】:
据我所知,运算符 ++ 有两种情况的区别: x++和++x; 尽管, 当我尝试编写这样的代码时:
int x = 5;
int* y = &x;
int value;
value = *y++ + ++*y;
value 的值,是 12,在等式的末尾。 如果我将等式交换为
value = ++*y + *y++;
也是12,我不懂规矩。 他先做什么? 在两种情况下,y 指针指向垃圾。
谢谢, 乌利亚。
【问题讨论】:
-
好吧,您的代码中有未定义的行为。看到这个 --> stackoverflow.com/questions/949433/…
-
不要写这样的代码,它既神秘又会导致未定义的行为。你想达到什么目的?
-
看这篇文章有一个概述stackoverflow.com/questions/4176328/…