printf中变量的递增和递减
我写了一个简单的程序,其中int a = 10
,我期待的o / p是10 9 9
printf("a++:%d \ta:%d \t --a: %d \n", a++, a, --a);
但得到的o / p是9 10 10
我写了另一个类似printf(" a:%d \t --a: %d \n", a, --a);
我得到的o / p是9 9
任何人都能解释一下这个吗?
您遇到了未定义的行为 ,通过使多个表达式具有副作用, 中间没有序列点 。
无法保证评估哪些顺序函数参数,因此无法在此处“预期”某些内容(除非您编写了编译器)。