c语言 字符转int型,C语言—类型之间的转换
原標題:C語言—類型之間的轉(zhuǎn)換
當混合不同類型的數(shù)據(jù)進行計算時,便會發(fā)生類型轉(zhuǎn)換。
當不同類型的數(shù)據(jù)進行計算時,應(yīng)首先將操作數(shù)轉(zhuǎn)換成相同的數(shù)據(jù)類型,然后再進行計算。
類型轉(zhuǎn)換有兩種形式,即隱式類型轉(zhuǎn)換和顯示類型轉(zhuǎn)換。
隱式類型轉(zhuǎn)換
所謂隱式類型轉(zhuǎn)換就是在編譯時由編譯器程序按照一定規(guī)則自動完成,而不需要人為的干預。因此,在表達式中如果有不同類型的數(shù)據(jù)參與同一運算時,編譯器就在編譯時自動按照規(guī)定的規(guī)則將其轉(zhuǎn)換為相同的數(shù)據(jù)類型。
C語言規(guī)定的轉(zhuǎn)換規(guī)則是由低級向高級轉(zhuǎn)換。例如,如果一個運算符帶有兩個類型不同的操作數(shù)時,那么在操作之前先將較低的類型轉(zhuǎn)換為較高的類型,然后進行運算,運算結(jié)果是較高的類型。更確切地說,對于每一個算術(shù)運算符,都遵循如圖所示的規(guī)則。
當整型數(shù)據(jù)和雙精度數(shù)據(jù)進行運算時,先將整型數(shù)據(jù)轉(zhuǎn)換成雙精度型數(shù)據(jù),再進行運算,結(jié)果為雙精度類型數(shù)據(jù)。
當字符型數(shù)據(jù)和實型數(shù)據(jù)進行運算時,C先將字符型數(shù)據(jù)轉(zhuǎn)換成實型數(shù)據(jù),然后進行計算,結(jié)果為實型數(shù)據(jù)。
注意:在賦值語句中,如果賦值號左右兩端的類型不同,則將賦值號右邊的值轉(zhuǎn)換為賦值號左邊的類型,其結(jié)果類型還是左邊類型。
也可以將圖3-3所示的規(guī)則用圖3-4表示。圖3-4中的水平箭頭表示必定轉(zhuǎn)換,縱向箭頭表示兩個操作對象類型不同時的轉(zhuǎn)換方向。
下面舉例說明類型轉(zhuǎn)換的規(guī)則。例如執(zhí)行:
float x;
x = 100 + 3.1415926
會按如下步驟進行處理:首先將整型100轉(zhuǎn)換為double型,然后進行運算,其結(jié)果為double型。最后將表達式的結(jié)果轉(zhuǎn)換為float并賦給x。
顯式類型轉(zhuǎn)換
顯示類型轉(zhuǎn)換又叫強制類型轉(zhuǎn)換,它不是按照前面所述的轉(zhuǎn)換規(guī)則進行轉(zhuǎn)換,而是直接將某數(shù)據(jù)轉(zhuǎn)換成指定的類型。這以在很多情況下簡化轉(zhuǎn)換。例如,
int i;
i = i + 9.801;
按照隱式類型轉(zhuǎn)換處理方式,在處理i=i+9.801時,首先整型i轉(zhuǎn)換為double型,然后進行相加,結(jié)果為double型,再將double型轉(zhuǎn)換為整型賦給i。
int i;
i = i + (int)9.801;
這時直接將9.801轉(zhuǎn)換成整型,然后與i相加,再把結(jié)果賦給i。這樣可把二次轉(zhuǎn)換簡化為一次轉(zhuǎn)換。
顯示類型轉(zhuǎn)換的方法是在被轉(zhuǎn)換對象(或表達式)前加類型標識符,,類型標識符用小括號括起來,其格式是:
(類型標識符)表達式
例如,有如下程序片段:
int main()
{
int a = 1;
int b = 0;
float c = 1.8f;
b = a + (int)c;
printf("b=%d\n",b);
return 0;
}
在上述程序的運行過程中,在執(zhí)行語句b=a+int(c)時,將c的值臨時強制性轉(zhuǎn)化為int型,但變量c在系統(tǒng)中仍為實型變量,也就是說,強制類型轉(zhuǎn)換不會改變變量的原值,這一點很重要,不少初學者忽略了這個問題。
責任編輯:
總結(jié)
以上是生活随笔為你收集整理的c语言 字符转int型,C语言—类型之间的转换的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么办爱情剧情介绍
- 下一篇: 英雄联盟!满及了!一直没去领新手礼包现在