* a. byte b = 1 + 1;
这个赋值是正确的,因为虽然右边的1默认的是int类型,但是当两个数值确定的时候相加的话只要不超过byte类型范围就可以编译通过。
* b. byte b = 1; b = b + 1;
这个编译失败,因为在b=b+1中,b是byte类型的,而1是默认的int类型,b+1的值并不明确是否在byte范围内,所以编译会提示损失精度,如果想通过编译可以进行强转b=(int)(b+1),但可能损失精度。
* c. byte b = 1; b = b += 1;
这个编译通过,因为在+=赋值运算符中已经包含了强转功能。
* d. byte b = 1; b = ++b;
这个编译通过,因为b的值确定了然后自增的话还在byte范围内,所以编译通过。
|