a = a+1与a += 1的区别
举例说明
//代码1
short a=1, a = a+1;
//代码2
short a=1, a += 1;
上面两个代码有没有问题,如果有,那里有问题?
第一个有问题,因为变量参与运算,首先会提升数据类型,然后做运算。所以 a = a+1;a会提升到int类型然后再做加法运算,最终的结果是int类型,所以拿short类型接收会报错,所以要想成功赋值,就得强制类型转换。
第二个代码没有问题,是因为内部自动包含了强制类型转换,a+=1 ===> a = (a的数据类型)(a+1)