C语言printf函数求值顺序

从右向左执行

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

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

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

posted on 2015-05-17 16:04  木屐  阅读(396)  评论(0编辑  收藏  举报

导航