黑马程序员技术交流社区

标题: 大神们谁能给我解答一下这个问题,我是菜鸟。求助攻、 [打印本页]

作者: WHY-y    时间: 2015-6-30 09:17
标题: 大神们谁能给我解答一下这个问题,我是菜鸟。求助攻、
昨天看毕老师的基础视频教程,讲到“+=”这块我不太懂。S=S+5运行错误,因为S为2个字节,5为4个字节,相加后4个字节不能再赋给2个字节的S。但是S+=5运行正确,老师说的是只做一次转换,值会自动提升为4个字节。
我想问的是为什么后者自动转换而前者不可以?
作者: jake_liu    时间: 2015-6-30 15:31
这个只需要记住就行,+=性质决定的。
作者: ZhangHeng    时间: 2015-6-30 16:54
s=s+5;这是两次运算,先做加法运算,再把值赋给s。
s+=5;一次运算,就是直接赋值,“+=”运算符在给s赋值时,就已经自动完成了强制转换的操作。
作者: dadai5ai    时间: 2015-6-30 17:04
ZhangHeng 发表于 2015-6-30 16:54
s=s+5;这是两次运算,先做加法运算,再把值赋给s。
s+=5;一次运算,就是直接赋值,“+=”运算符在给s赋值 ...

楼上正解




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2