为什么printf中的输出不同,a和a + 1之间的输出相同?

时间:2014-11-23 05:47:49

标签: c

当我在C编程中编写代码时,我写道:

a = 2;
printf("%d %d", ++a, a);

a = 2;
printf("%d %d", ++a, a + 1);

作为类似的输出

3 3

但是当我交换它们时,它们有不同之处:

a = 2;
printf("%d %d", a, ++a);
3 3

a = 2;
printf("%d %d", a+1, ++a);
4 3

为什么有不同的输出?

1 个答案:

答案 0 :(得分:0)

printf("%d %d", a, ++a);

这会导致未定义的行为。 这取决于printf()如何处理参数。