C语言printf函数求值顺序

从右向左执行

对于printf函数而言,它们都是参数,没有什么顺序的。问题出现在++的位置
你就记得这个原则就行了
++在前时,就将加法操作放到这句话的前面,同理,在后面时,就放到这句话的后面
举例:
printf("%d,%d ",i,++i);
等价于
i = i + 1;
printf("%d,%d ",i,i);

printf("%d,%d ",i,i++);
等价于
printf("%d,%d ",i,i);
i = i + 1;

所以不管以后有多复杂的,只要这样替换就可以了
比如
printf("%d,%d ",--i,i++);
等价于
i = i - 1;
printf("%d,%d ",i,i); // 打印的就是i减去1的值 。就算是printf("%d,%d ",i++,--i);也一样
i = i + 1;

原文地址:https://www.cnblogs.com/poli/p/4509858.html