| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 615 人关注过本帖
标题:求助(a=3;a=(a++)+5;的输出结果是9)
只看楼主 加入收藏
zrfz2008
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-9-7
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
求助(a=3;a=(a++)+5;的输出结果是9)
我看视频教程自学的,没听清她讲的意思。
我自己试了一下。a=(++a)+5的结果也是9.
请高手赐教。谢谢!!!
搜索更多相关主题的帖子: 输出 结果 
2010-09-07 12:40
manliuhui
Rank: 2
来 自:山东德州
等 级:论坛游民
帖 子:23
专家分:52
注 册:2009-7-25
收藏
得分:6 
结果是相同的,但是编译过程不同,++运算符如果在变量前面,则在语句里面可定是先全部运算后再执行其他运算,如果是放在变量后面,则先执行完其他运算后才进行自加运算,当然这也要看编译器的不同,标准的里面是压入堆栈处理的。所以:
a=(a++)+5的运算顺序是a=3 ->a=a+5(a=8) ->a++(a=9);
a=(++a)+5的运算顺序是a=3 ->a++(a=4) ->a=a+5(a=9);
所以在语句执行后,结果都是相同的。但是在正规编码里面不提倡这样的代码
2010-09-07 13:15
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:6 
a=(++a自加后a的值是4)括号优先等级高,所以先算括号+5

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2010-09-07 13:16
zrfz2008
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-9-7
收藏
得分:0 
回复 2楼 manliuhui
我刚学c,对堆栈理解不了。谢谢了。
2010-09-07 19:48
燕强
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:78
专家分:188
注 册:2010-8-11
收藏
得分:6 
以下是引用manliuhui在2010-9-7 13:15:55的发言:

结果是相同的,但是编译过程不同,++运算符如果在变量前面,则在语句里面可定是先全部运算后再执行其他运算,如果是放在变量后面,则先执行完其他运算后才进行自加运算,当然这也要看编译器的不同,标准的里面是压入堆栈处理的。所以:
a=(a++)+5的运算顺序是a=3 ->a=a+5(a=8) ->a++(a=9);
a=(++a)+5的运算顺序是a=3 ->a++(a=4) ->a=a+5(a=9);
所以在语句执行后,结果都是相同的。但是在正规编码里面不提倡这样的代码
很详细的讲解,学习了。。
2010-09-07 20:59
快速回复:求助(a=3;a=(a++)+5;的输出结果是9)
数据加载中...
 
   



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

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