黑马程序员技术交流社区

标题: 求解? [打印本页]

作者: 孙浩    时间: 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