A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区
传智教育官网黑马程序员官网
只需一步,快速开始
郭孟涛
高级黑马
黑马币:0
帖子:926
精华:0
© 郭孟涛 高级黑马 / 2013-6-20 16:46 / 5506 人查看 / 28 人回复 / 0 人收藏 转载请遵从CC协议 禁止商业使用本文
查看全部评分
尹桥印 发表于 2013-6-20 16:52 a++本来就是将a自身加1,先把a赋值给等号前面的a,再将本身加1; 如果你写成a = ++a ; 打印结果就是6了,先 ...
shang1jk 发表于 2013-6-20 17:04 " 先把a赋值给等号前面的a,再将本身加1;" --->>这样说的话, a还是要加1的啊,, 怎么输出5. p.s. 你真 ...
尹桥印 发表于 2013-6-20 17:21 a = a++; 如果写成如下: int b = 0;
360截图20130620193229716.jpg (24.05 KB, 下载次数: 0)
下载附件
2013-6-20 19:32 上传
360截图20130620193832021.jpg (24.29 KB, 下载次数: 0)
2013-6-20 19:38 上传
王靖远 发表于 2013-6-20 19:38 同理可以画出 a = ++5;
hx32 发表于 2013-6-20 20:05 看了图解,我了解了累加的实现,然后我就想,再输出一次a值是否可以实现a=6,但是仍然是5.怎样可以输出a= ...
王靖远 发表于 2013-6-20 20:13 因为a = a++;是左边自增运算完再赋值的,当赋值的时候,右边运算开辟的栈内存都释放了,a还是等于5。 你 ...
hx32 发表于 2013-6-20 20:14 哦,是栈内存释放的原因,明白了,谢谢
sunriselzz 发表于 2013-6-20 21:08 a = a++这个写法没有错误的,++在后,先把a之前初始化的值5赋值给左边的a,先打印输出a的值5,然后再自加+1,也 ...
尹桥印 发表于 2013-6-20 17:17 这题还得细细思考
有了黑马骑士勋章,比白马王子还要牛!