強制類型轉(zhuǎn)換和自動類型轉(zhuǎn)換有什么具體區(qū)別嗎
#include <stdio.h>
int main()
{
? ? double num = 2.5;? ? ? //定義浮點型變量num并賦值為2.5
? ? int num1=(int)num;
? ? printf("num的整數(shù)部分是%d\n", num1);??
? ? return 0;
}
這個得出了正確結(jié)果,顯示運行成功,但是如果這樣寫
#include <stdio.h>
int main()
{
? ? double num = 2.5;? ? ? //定義浮點型變量num并賦值為2.5
? ? int num1=(int)num;
? ? printf("num的整數(shù)部分是%d\n", num);??
? ? return 0;
}
卻不行,可是明明求得是num的結(jié)論啊,有什么緣由嗎,求幫助,謝謝啦!
2018-11-29
自動轉(zhuǎn)化是字節(jié)小的可以向字節(jié)大的自動轉(zhuǎn)換,但字節(jié)大的不能向字節(jié)小的自動轉(zhuǎn)換,而強制轉(zhuǎn)換轉(zhuǎn)換后不會改變原數(shù)據(jù)的類型及變量值,只在本次運算中臨時性轉(zhuǎn)換。
你下面一個程序轉(zhuǎn)化num時輸入的函數(shù)值必須保持一致。
例如:?printf("num的整數(shù)部分是%d\n", num); 中num改為num1 與上面的num1保持一致
2018-12-03
最后那個你是把num強制轉(zhuǎn)化了num1,應(yīng)該在輸出的時候printf("num的整數(shù)部分是%d\n", num1); 注意最后變量名是num1