-4

可能重复:
未定义的行为和序列点

程序的输出

#include<stdio.h>
main()
{

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

}

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

4

1 回答 1

3

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

这是未定义的行为;您依赖于没有修改之间的序列点的副作用。

于 2012-10-19T14:01:24.247 回答