标签: 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,为什么?
答案 0 :(得分:6)
p = p++ + ++p;
是未定义的行为。阅读Sequence point.