short s = 5;
s=s+2;
s+=2;
有什么区别?
本质上short s = 5;
s已经是short类型
而s=s+2; 2本身默认int类型
因为数据类型遵循低位向高位是可以进行自动转换,而高位转低位需要的是强制转换。
所以如果要写成
s= (short) (s+2);
进行强制转换
或者直接用 s+=2因为s+=2已经隐含了强制转换。
short s = 5;
s=s+2;
s+=2;
有什么区别?
本质上short s = 5;
s已经是short类型
而s=s+2; 2本身默认int类型
因为数据类型遵循低位向高位是可以进行自动转换,而高位转低位需要的是强制转换。
所以如果要写成
s= (short) (s+2);
进行强制转换
或者直接用 s+=2因为s+=2已经隐含了强制转换。