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类型,所以会错误,需要进行强制转换。扩展赋值运算符隐含进行了强转操作,所以正确。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM