黑马程序员技术交流社区
标题:
求解?
[打印本页]
作者:
孙浩
时间:
2012-11-23 00:15
标题:
求解?
本帖最后由 孙浩 于 2012-11-24 20:03 编辑
请问各位大侠:short s = 3; s = s+2; s+=2,有什么区别啊?
作者:
坚持远方
时间:
2012-11-23 00:18
这两句话的意思是一样的
作者:
朝花夕拾
时间:
2012-11-23 00:39
本帖最后由 张雄 于 2012-11-23 00:51 编辑
short s = 3; s = s+2;在做运算时会有自动类型提升,将s提升为int型做加运算后,结果为int型赋值给short型 会有损精度
s+=2,在做运算时+=有默认强制转换效果,所以该句可编译通过!
作者:
金鑫
时间:
2012-11-23 01:34
s=s+2;编译失败,因为short类型是2个字节,2是int类型4个字节。运算完毕后右边表达式的值提升为int类型,无法赋值给左边,必须进行强制转换
s+=2; 编译成功,+=会自动进行类型转换,不用自己再手动进行类型转换
作者:
孙浩
时间:
2012-11-23 09:49
问题已经解决!谢谢给位!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2