题目:
byte b1=3 ,b2=4,b;
b=b1+b2;
b=3+4;
哪句是编译失败的?为什么?
class Demo {
public static void main(string[] args)
//定义了三个byte类型的变量,b1,b2,b
//b1的值是3,b2的值是4.b;
byte b1 = 3,b2 = 4,b;
b = b1 + b2; //这个是类型提升,所有有问题
b = 3 + 4; //常量,先把结果计算出来,然后看是否在byte的范围内,如果在就不报错
}
因为变量相加,会首先看类型问题,最终把结果赋值的也会考虑类型问题。
常量相加,首先做加法,然后看结果是否在赋值的数据类型范围内,如果不是,才报错。