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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© michael_wlq 高级黑马   /  2015-8-24 15:08  /  272 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 michael_wlq 于 2015-8-24 17:17 编辑

思考:                                short  s = 3;
                s = s + 2;
                s + = 2;   
有什么区别?   

解答: s = s + 2 // 编译失败。该语句先做加法,再做赋值运算,分两步,首先s + 2中的s会被提升为int类型,运算后的结果还是int类型,int类型赋值给short类型会失精度,从而无法赋值给short类型,编译失败。
           s + = 2 // 编译通过。因为+=运算符只做赋值运算,在给s赋值时,自动完成了强转操作,判断出int类型的5在short表示范围内,所以会先强制转换成short类型,然后赋值成功。




2 个回复

倒序浏览
cc3441251 来自手机 中级黑马 2015-8-24 15:29:47
沙发
学习了谢谢分享
回复 使用道具 举报

客气啦,嘿嘿~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马