| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1727 人关注过本帖
标题:[求助] printf("%d%d%d",a,)
只看楼主 加入收藏
loyal_lau
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-12-31
收藏
 问题点数:0 回复次数:8 
[求助] printf("%d%d%d",a,)

void main()

{ int a=1;

printf("%d%d%d",a,++a,a--);

}

为什么这个结果为1,1,1?(我认为应该为1,2,2)而下面的这个程序

void main()

{ int a=1;

printf("%d",++a,);

}

这个程序的结果为2,搞不懂,有没有人能帮我解答,谢谢!!!

搜索更多相关主题的帖子: printf 
2005-12-31 21:42
我是一根葱
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2005-12-31
收藏
得分:0 
printf("%d%d%d",a,++a,a--)
这是因为printf()函数总是从右边开始的先计算a--并把结果对应第三个%d,而a--是先使用后减减。意思是先显示a的值再将a--,这时候a=0然后再把a=0赐给a.那么现在的a应为0,接着再计算++a。++a是先加再赐值也是a=a+1。那么a就等于1。最后在显示a,结果为1。





2005-12-31 22:32
我是一根葱
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2005-12-31
收藏
得分:0 
printf("%d%d%d",a,++a,a--)
a对应第一个%d,++a对应第二个%d,a--对应第三个%d。
printf()函数是从右边开始向左边计算的。
所以先计算a-- 再计算++a 接着计算a

2005-12-31 22:40
wzbest
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2005-4-12
收藏
得分:0 
好像是从右往左算的

2005-12-31 22:43
loyal_lau
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-12-31
收藏
得分:0 
多些“我是一根葱”。
课本上基本只讲解运算符的运算顺序,还没涉及到函数的计算顺序
你又这方面的资料吗?
2005-12-31 22:56
tiandi2997
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2005-12-9
收藏
得分:0 
可能是你的编译器的问题

2005-12-31 22:57
debug001
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2005-12-25
收藏
得分:0 
以下是引用我是一根葱在2005-12-31 22:32:00的发言:
printf("%d%d%d",a,++a,a--)
这是因为printf()函数总是从右边开始的先计算a--并把结果对应第三个%d,而a--是先使用后减减。意思是先显示a的值再将a--,这时候a=0然后再把a=0赐给a.那么现在的a应为0,接着再计算++a。++a是先加再赐值也是a=a+1。那么a就等于1。最后在显示a,结果为1。




分析的真具体,一级棒

2005-12-31 23:06
wanglff
Rank: 2
等 级:新手上路
威 望:5
帖 子:375
专家分:0
注 册:2005-12-21
收藏
得分:0 

自强不息:)
2006-01-01 06:58
ruizhigege
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-3-24
收藏
得分:0 
回复 2楼 我是一根葱
printf("%d%d%d",++i,++i,++i);i的初始值为10,而输出结果是13 13 13 ,这个怎么解释?最右边的++i为11,对应最右边的%d?如果这样,为什么会输出13?
在上语句基础上,继续i++操作,然后运行下面语句
printf("%d%d%d",i++,i++,i++);
结果是:16 15 14
为什么不是16 16 16?
同意你说的顺序计算,但是还是不理解为什么会有这样的结果

[ 本帖最后由 ruizhigege 于 2012-3-24 15:46 编辑 ]
2012-03-24 15:42
快速回复:[求助] printf("%d%d%d",a,)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014125 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved