byte z = 62; //=======①
byte f = 23 + 39; //======②byte c = 23; //=======③
byte s = 39; //=======④
byte p = c + s; //======⑤我想知道为什么第5行会编译报错?
第2行为什么不会报错难道“23+39”最后不是当做int类型来进行赋值给byte f吗?
第1行与第2行有什么不同?
第2行与第5行有什么差异?
求各位大神帮忙解答,最好详细点万分感谢
byte f = 23 + 39; //======②byte c = 23; //=======③
byte s = 39; //=======④
byte p = c + s; //======⑤我想知道为什么第5行会编译报错?
第2行为什么不会报错难道“23+39”最后不是当做int类型来进行赋值给byte f吗?
第1行与第2行有什么不同?
第2行与第5行有什么差异?
求各位大神帮忙解答,最好详细点万分感谢
但是你给的代码的1-4行是属于直接数赋值,数值是int型的,所以只要没有超出byte的范围就可以直接赋值了。
第5行就属于类型转换了,不加个强制转换当然会报错。
你看图里面的int是可以直接给其他类型赋值的