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