printf中增量运算符的模糊行为

时间:2012-10-19 13:58:18

标签: c printf

  

可能重复:
  Undefined Behavior and Sequence Points

程序的输出

#include<stdio.h>
main()
{

 int i = 10;
 printf("%d %d %d\n", ++i, i++, ++i);

}

是13 11 13.有人可以解释一下吗?

1 个答案:

答案 0 :(得分:3)

这是有史以来最古老的问题。人们为什么觉得这么迷人?

这是未定义的行为;你在依赖副作用时没有sequence point之间的修改。