byte b = 20; //20是為默認類型int類型。大類型賦小類型卻不用轉型。
float f = 3.25F; //3.25是為默認類型double類型。大類型賦小類型要轉型。
//為什麼第一個不需要轉型?
//*************************************************
byte b1=20;
byte b2= 30;
byte b3= b+b1; //編譯報錯,因為b+b1的默認類型是int,所以需要強轉;
float a = 30.0f;
float a1 = 40.0f;
float a2= a+a1; //這裡為什麼編譯能通過,難道a+a2不是為默認類型double嗎
?
你剛剛定義了一個byte 類型的20,為什麼要轉型?
3.25F,F只是標記前面的3.25是個float類型。難道你要這樣定義嗎float f =(double)3.25F ?這是個什麼語法呢...
在剛剛定義數據類型的時候,不涉及轉換,因為你定義的就是該類型。在之後的賦值或調用的時候才涉及類型轉換。
比如:
byte a =20
short b=30
int c = a+b
在計算c = a+b 的時候才有類型轉換,float同理