码迷,mamicode.com
首页 > 系统相关 > 详细

linux系统下printf函数可变参数的计算顺序

时间:2015-04-03 15:41:53      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:linux系统   printf函数   计算顺序   输出顺序   

#include<stdio.h> 
void main() 
{ 
	int i=5; 
	//printf("%d,%d,\n",i,i++); //输出 6,5,
	//printf("%d,%d,\n",i++,i); //输出 6,6,
	//printf("%d,%d,\n",i,++i); //输出 6,6,
	//printf("%d,%d,\n",++i,i); //输出 6,6,
	//printf("%d,%d,\n",i++,++i); //输出 6,7,
	//printf("%d,%d,\n",++i,i++); //输出 7,5,
	//printf("%d,%d,\n",i++,i++); //输出 6,5,
	//printf("%d,%d,\n",++i,++i); //输出 7,7,
	
	//由此得出:可变参数是从右到左计算的,并且后自增(i++)是先将i当前值保存,然后自增,接着继续处理左边的参数。而i和i前自增是先计算。计算结束后依次入栈,因此后自增打印出来的是i在从右向左计算过程中当前的I值,而i,++i最终输出的都是I的最终值。
	因此:
	
	//printf("%d,%d,%d,%d,\n",++i,i++,++i,i); //输出 8,6,8,8,
	//printf("%d,%d,%d,%d,\n",++i,++i,++i,++i); //输出 9,9,9,9,
	//printf("%d,%d,%d,%d,\n",i++,i++,i++,i++); //输出 8,7,6,5,
	//printf("%d,%d,%d,%d,%d,\n",i++,++i,i,++i,i++); 8,9,9,9,5,
}


linux系统下printf函数可变参数的计算顺序

标签:linux系统   printf函数   计算顺序   输出顺序   

原文地址:http://muyunzhe.blog.51cto.com/9164050/1627943

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!