解释以下C程序的输出

时间:2013-08-18 06:48:52

标签: c operator-keyword operator-precedence associativity

#include <stdio.h>
main()
{
int a=1;
printf("%d %d %d %d %d\n",++a,a++,++a,++a,a++);
a=1;
printf("%d %d %d %d %d",a,a++,a,++a,a);
}

当我运行它时,它会给出以下输出。

6 4 6 6 1
3 2 3 3 3

请解释一下代码。

1 个答案:

答案 0 :(得分:2)

未定义函数参数的评估顺序,因此可以按任何顺序应用++运算符。您正在查看未定义行为的结果。