A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© HiloFeng 中级黑马   /  2014-12-15 23:36  /  2593 人查看  /  16 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


int a=(a++)+5;的结果怎么分析的?
我的理解是(a++)的值为2,但是里面又产生一个a=3的值,然后是2跟5相加,还是3跟5相加。

16 个回复

正序浏览
2+5赋给a
回复 使用道具 举报

:L它是+5,我看成了3。。
回复 使用道具 举报
呢? 中级黑马 2014-12-17 00:49:10
15#
Zomu_文林 发表于 2014-12-15 23:58
因为a++的++在后面,所以它是先操作a这个数,就是a+3即2+3=5,运算完然后a再自增,自增完后b=3,最后再把5 ...

结果是7
回复 使用道具 举报
a的初始化值先自增1再加5,最后把值赋给a
回复 使用道具 举报
这个问题我也挺疑惑的,感谢楼主
回复 使用道具 举报
注意是a++,不是++a,所以直接用2加5.至于括号,对++而言,它本身的优先级是高于+的。所以加括号是为了提高阅读性,避免的歧义的现象。
回复 使用道具 举报
是2+3=5;先计算后再自增
回复 使用道具 举报
看看》》》》
回复 使用道具 举报
lnscore 中级黑马 2014-12-16 22:20:21
9#
这个问题我也挺疑惑的,感谢楼主
回复 使用道具 举报
大家加油吧
回复 使用道具 举报
it667135 发表于 2014-12-15 23:44
你a的初始值是多少就是多少和5相加

哦 忘了,这是看的视频中的一个题目   a=2
回复 使用道具 举报
a++是先运算,后自增。你的这道题有问题,没有对a初始化。
回复 使用道具 举报
问题重复了。。。。。http://bbs.itheima.com/thread-157690-1-1.html
回复 使用道具 举报
我们老师说的是:把a的值提出来和5相加再赋给a,至于a++的值就不用管了,其中考虑的是执行顺序的问题
回复 使用道具 举报
因为a++的++在后面,所以它是先操作a这个数,就是a+3即2+3=5,运算完然后a再自增,自增完后b=3,最后再把5赋给a,所以最后输出的a为5。
回复 使用道具 举报
你a的初始值是多少就是多少和5相加
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马