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