解释C程序的输出

时间:2014-07-17 07:06:36

标签: c int printf output post-increment

#include <stdio.h>

main()
{
  int i=5;
  printf("%d %d",i,i++);
}

输出: 6 5

有人可以解释一下这种输出吗? 它与逗号运算符的关联性有关吗?

2 个答案:

答案 0 :(得分:1)

行为未指定。这是因为printf的参数不是排序

(非正式地,您不知道i何时会增加。

答案 1 :(得分:0)

内部参数的评估顺序未指定,因此根据您的C编译器,可以首先评估选项ii++。您收到的输出是在i++之前评估i时发生的情况。