我们有时候需要输出多个表达式如:
int i = 0;
printf("--i = %d\n",--i);
printf("-i = %d\n",-i);
printf("-i++ = %d\n", -i++);
printf("++i = %d\n", ++i);
运行结果:
–i = -1
-i = 1
-i++ = 1
++i = 1
这样写有些麻烦,有时简写成
printf("--i = %d\n-i = %d\n-i++ = %d\n ++i = %d\n", --i, -i, -i++, ++i);
运行结果:
–i = 1
-i = -2
-i++ = -1
++i = 1
结果和上面的运行结果大不相同,这是因为printf函数中表达式的执行结果是右结合 。涉及一个变量的多个表达式的计算时要合理安排执行顺序,将先计算的表达放在printf中的最右边,然后依次向左,这样的话执行顺序就正确了。