赋值运算符里藏着的强转
猿兄请看下面的代码:
short s=1;
s = s + 1;
short s = 1;
s+ = 1;
也许有的猿兄会觉得木得问题,两个小儿科;
也许有的猿兄觉得俩都会报错,因为损失精度的情况下需要强转;
其实第一个确实没有什么门道,强转而报错
但是看似等价的第二段代码是可以通过编译正常运行的~
因为扩展的赋值运算符隐含了强制类型转换
即 s+ = 1;等价于s = (s对应的数据类型)(s+1);
猿兄请看下面的代码:
short s=1;
s = s + 1;
short s = 1;
s+ = 1;
也许有的猿兄会觉得木得问题,两个小儿科;
也许有的猿兄觉得俩都会报错,因为损失精度的情况下需要强转;
其实第一个确实没有什么门道,强转而报错
但是看似等价的第二段代码是可以通过编译正常运行的~