6 short s1 = 1; s1 = s1 + 1;有错吗? short s1 = 1; s1 += 1; 有错吗?

第一个有错,因为s1是short类型,s1 + 1会自动转换为int类型,将int类型赋值给short类型的s1,属于高位类型转低位,需强制转换。

第二个正确,因为s1 += 1 相当于 s1 = (short) (s1 + 1),默认会有强制类型转换。

从低位类型到高位类型自动转换;从高位类型到低位类型需要强制类型转换

posted @ 2020-12-17 14:55  卫盾  阅读(186)  评论(0编辑  收藏  举报