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類型,所以會錯誤,需要進行強制轉換。擴展賦值運算符隱含進行了強轉操作,所以正確。
