问题描述:
short s=1;
s=s+1;(此处报错)
s+=1;(此处不报错)
问题解答:
+= : 是将符号左右两边的数据,做加法运算,然后将结果赋值给左边
short s=1;
s=s+1;
s是short类型,1是int类型,short和int相加的时候,会先将short提升为int
两个int相加的结果,还是int,把int结果赋值给short类型的变量,需要强转。
short s=1;
s+=1;
原因:底层自动做了强制类型转换
s = (short)(s+1);