float,short类型赋值运算问题

  float f = 3.4; 有错吗?  有错,因为浮点类型默认是double类型,double类型赋值给float类型是大类型赋值给小类型需要进行强转,可在3.4前加(float)进行强转,或者在声明的时候就定义为float类型即在3.4后加f或F。

  short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?  前面有错,后面没错,整型赋值只要值在数据类型范围之内就可以赋值成功,但是进行运算时候会转换成int再运算,所以short类型s1会自动类型转换成int进行运算,结果是int类型但是要赋值给short类型,所以会错误,需要进行强制转换。扩展赋值运算符隐含进行了强转操作,所以正确。

posted @ 2020-05-12 17:32  coder小白  阅读(2286)  评论(0编辑  收藏  举报