为什么这段代码输出3

时间:2012-04-03 01:37:25

标签: c

  

可能重复:
  Could anyone explain these undefined behaviors (i = i++ + ++i , i = i++, etc…)

我发现这段代码,最初是在这里:

#include <stdio.h>

int main()
    {
    int p = 0;
    p = p++ + ++p;
    printf("p=%d\n", p);

}

我猜测输出将是2,但是当我编译代码并执行它时,输出为3,为什么?

1 个答案:

答案 0 :(得分:6)

p = p++ + ++p;

是未定义的行为。阅读Sequence point.