【发布时间】:2017-10-11 15:40:42
【问题描述】:
如果 n 的值为 5,则输出:
printf("%d %d", n++, ++n); //should be 5 and 7
但我得到的是输出 6 和 7。
【问题讨论】:
-
请阅读序列点的规则。这种行为绝对是出乎意料的。在函数调用期间,您不应更改变量的值超过 1 次。
-
意外行为实际上,这是未定义的行为。函数参数的求值顺序没有定义。
标签: c output increment post-increment pre-increment