黑马程序员技术交流社区

标题: 数据类型的转换 [打印本页]

作者: 夜班心桥    时间: 2015-3-12 23:23
标题: 数据类型的转换
  1. byte b=3;
  2. b=b+2;
  3. b+=2;
复制代码
b=b+2,编译不通过,由于b和2在运算的时候,结果为int类型,无法负责给byte类型的b。
为什么b+=2;编译可以通过呢?这两个赋值语句不是一样的吗?

作者: 曾勇    时间: 2015-3-13 23:27
b +=2 是赋值语句   内部有个自动类型转换过程   即右边计算出的结果  先进行转换  再赋值给左边
b = b+2  右边的先运算后 得出的结果赋值给左边,  由于在计算过程有个类型自动提升过程,所以其结果为int型,不能赋给左边   需要先进行强转后   才能赋给左边

区别就是   b += 2 内部有个类型自动转换过程
                 
作者: 夜班心桥    时间: 2015-3-14 23:00
谢谢啊,知道了




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