short a=1,a=a+1和a+=1有什么区别

问题描述:

short a=1,a=a+1和a+=1有什么区别

结果是不一样的,因为a=a+1;这句代码是错误的,a本身是short类型,而1天生就是int类型的,a与1做运算最终的结果是int类型的.所以无法直接将一个int型数据赋值给short型.
而a+=1;这句代码是正确的,它与a=1这种直接赋值的语句原理是一样的,他是先判断1是否在short类型数据的范围内,如果没有超出范围则直接赋给a.
a=a+1相当于:
short a=1;
int b=2;
a=b;
所以是错误的.