标签: c output increment post-increment pre-increment
如果n的值为5,则输出:
printf("%d %d", n++, ++n); //should be 5 and 7
但我得到输出6和7。
答案 0 :(得分:1)
多次未经测序的修改会导致此类未定义行为。如果你搜索它会有很多结果,例如这question。
下次编译并启用所有警告,如下所示:
1.0-SNAPSHOT
答案 1 :(得分:0)
printf()调用undefined-behavior。 请查看Undefined Behavior and Sequence Points
在函数调用参数列表中修改变量值两次或更多次并不是一个好习惯