short与int

来源:百度知道 编辑:UC知道 时间:2024/05/15 09:43:54
short s1 = 1; s1 = s1 + 1,错误,int不能转换为short.
为什么 short s1 = 1; s1 += 1正确?

s1 += 1跟 s1 = s1 + 1还有区别吗???

+= 是运算符的重载

而 a=a+1;的+是 普通运算符

运算符重载后更强大.

比如方法重载,你可以做一些判断在里面.ok

s1 = s1 + 1
1的默认类型是int,你需要对相加后的记过做强制转换
short s1 = 1
系统自动转换了

因为short只要两个byte,而int是4个byte,你要强制转化的时候如果成功,那么int就会丢失前面的16个Bit这种转换显然是不等价的,是错误的。而在你后面的1因为你没有限定这是一个什么类型的数字,就会根据你前面的s1来自变化。
s1+=1 和你s1 =s1 +1是一样的。