赋值运算符的反思
赋值运算符:
基本的赋值运算符:=
把=右边的数据赋值给左边
int x = 10
扩展的赋值运算符:+=,-=,*=,/=,%=
+= 把左边和右边做加法,然后赋值给左边
s += 1; // s = s + 1
-= 把左边和右边做减法,然后赋值给左边
*= 把左边和右边做乘法,然后赋值给左边
/= 把左边和右边做除法,然后赋值给左边
%= 把左边和右边做加法,然后赋值给左边
思考
short s=1;s = s+1;
short s=1;s+=1;的区别是什么
s += 1不是等价于 s = s + 1而是等价于 s = (s的数据类型)(s + 1)可以编译成功。
s=s+1是有问题的,隐含了不同类型的数据赋值,编译不成功
总结
byte,short,char之间不相互转换,直接转成int类型参与运算
扩展的赋值运算符其实隐含了一个强制类型转换