java吧 关注:1,233,678贴子:12,699,608
  • 14回复贴,共1

1个类型转换问题,搞不懂,谢谢帮忙

只看楼主收藏回复

byte b = 1; b = b + 1; 会报错,因为b+1后是int类型
byte b = 1; ++b 为什么不会报错,且b最后等于2,++和+=一样自带强转吗?


IP属地:湖南1楼2013-11-16 23:01回复
    求help,快沉了....


    IP属地:湖南2楼2013-11-16 23:21
    回复
      这是个面试题 自动转


      来自Android客户端3楼2013-11-16 23:41
      收起回复
        我认为是这样的:
        byte b = 1; b = b + 1; 中1是int型,等式右边b+1是int型(自动向大范围的类型转换),int型无法赋值给byte型
        而byte b = 1; ++b; 中++b是以b作为操作数,操作的结果也是byte型,所以无错


        IP属地:四川4楼2013-11-16 23:42
        收起回复
          不一样!++会!+=不会


          来自Android客户端5楼2013-11-16 23:44
          收起回复
            我也不懂,同求结果


            IP属地:上海来自Android客户端6楼2013-11-17 00:26
            收起回复
              1.左右b为byte,1为int,向小范围转报错。
              2.操作数一直都是byte,加1也是加的byte.所以2不涉及强转,这是我的想法。


              IP属地:内蒙古来自iPhone客户端7楼2013-11-17 00:43
              收起回复
                像这样的问题不用纠结,好好学学基础吧


                IP属地:湖北来自Android客户端8楼2013-11-17 00:55
                收起回复