+=的扩展

short s=1;

s=s+1;  //false

因为1为int类型,s为short类型,当s与1相加时,short类型会自动转化为int类型(向上转型),所以右边就为int类型,左边用short类型接收int类型,错误

s+=1; //true

+= 是一个运算符,只运算一次,并带有强制转换的特点,
也就是说 s += 1 就是 s = (short)(s + 1) ,因此程序没有问题编译通过

猜你喜欢

转载自www.cnblogs.com/dadabai/p/12529357.html