*解释 ++ += /= =都是:不会改变 变量本身的数据类型
以及解释short s=1;s+=2;与s=s+2的区别.(数据类型的转换问题)
首先,数据类型之间是由范围容量较小时的数据类型 自动转换 到范围容量较大的数据类型,
short s = 1;
s = s + 2;//此时编译报错
解释:因为s是short类型,2是int类型
Short---->int类型(自动)
s+2=1+2=3(int类型)
int类型 再赋值 给short类型 时会出现数据类型转换错误。
short s = 1;
s += 2;//结论:不会改变变量本身的数据类型
此时编译成功,(暂时的理解)+=会进行内部处理,
“+=”右边的数据类型会自动转换为左边的数据类型.
输出的s为short型
解决方法是进行强制数据类型转换
S=(short)(s+2);