赋值运算符里藏着的强转

猿兄请看下面的代码:

 

short s=1;

s = s + 1;

 

short s = 1;
s+ = 1;


也许有的猿兄会觉得木得问题,两个小儿科;
也许有的猿兄觉得俩都会报错,因为损失精度的情况下需要强转;

其实第一个确实没有什么门道,强转而报错
但是看似等价的第二段代码是可以通过编译正常运行的~

因为扩展的赋值运算符隐含了强制类型转换

即 s+ = 1;等价于s = (s对应的数据类型)(s+1);

 

 

posted @ 2018-12-06 18:20  Moliay  阅读(2)  评论(0编辑  收藏  举报