我写了一个简单的程序,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
我写了另一个类似的 printfprintf(" a:%d \t --a: %d \n", a, --a);
我得到的 o/p 是9 9
谁能解释一下这个?
我写了一个简单的程序,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
我写了另一个类似的 printfprintf(" a:%d \t --a: %d \n", a, --a);
我得到的 o/p 是9 9
谁能解释一下这个?
您正在经历未定义的行为,因为有多个具有副作用的表达式,中间没有序列点。
无法保证评估函数参数的顺序,因此无法在这里“期望”某些东西(除非您编写了编译器)。