printf中变量的递增和递减

时间:2013-04-16 09:31:37

标签: c

我写了一个简单的程序int a = 10我期待的o / p是10 9 9

 printf("a++:%d \t a:%d \t --a: %d \n", a++, a, --a); 

但得到的o / p是9 10 10

我写了另一个类似printf(" a:%d \t --a: %d \n", a, --a);

的printf

我得到的o / p是9 9

任何人都能解释一下这个吗?

1 个答案:

答案 0 :(得分:3)

您遇到了未定义的行为,因为多个带有副作用的表达式没有sequence points inbetween

无法保证评估哪些顺序函数参数,因此无法在此处“预期”某些内容(除非您编写了编译器)。