關于int的問題
double num = 2.5; ? ? ?//定義浮點型變量num并賦值為2.5 ? ?int num2=(int)num; ? ?printf("num的整數部分是%d\n",num2); ? ? ?return 0; } 這里面的num2的值也是2.5嗎,可是num2定義的時候不是int整形嗎
double num = 2.5; ? ? ?//定義浮點型變量num并賦值為2.5 ? ?int num2=(int)num; ? ?printf("num的整數部分是%d\n",num2); ? ? ?return 0; } 這里面的num2的值也是2.5嗎,可是num2定義的時候不是int整形嗎
2015-08-22
舉報
2015-08-22
num2 是整型,當然不會有小數點,它的值是2。
你可以省略掉那個括號的:
賦值(初始化)要求兩側類型相同。不同的話,等號右側的變量會自動“臨時”轉換為等號左側的類型,再進行賦值,這就叫自動類型轉換。所以不用手動指定類型(用括號)。
浮點型轉為整型一般是丟棄小數點,所以num的2.5被自動轉換為整型2,再為num2初始化。故你定義的整型num2的初值為2.
2015-08-22
懂了,謝謝