我們已經(jīng)看到程序中使用的各種變量都應(yīng)預(yù)先加以說(shuō)明,即先說(shuō)明,后使用。對(duì)變量的說(shuō)明可以包括三個(gè)方面:
·數(shù)據(jù)類型
·存儲(chǔ)類型
·作用域
在本講中,我們只介紹數(shù)據(jù)類型說(shuō)明。其它說(shuō)明在以后陸續(xù)介紹。所謂數(shù)據(jù)類型是按被說(shuō)明量的性質(zhì),表示形式,占據(jù)存儲(chǔ)空間的多少,構(gòu)造特點(diǎn)來(lái)劃分的。在C語(yǔ)言中,數(shù)據(jù)類型可分為:基本數(shù)據(jù)類型,構(gòu)造數(shù)據(jù)類型,指針類型,空類型四大類。
1.基本數(shù)據(jù)類型
基本數(shù)據(jù)類型最主要的特點(diǎn)是,其值不可以再分解為其它類型。也就是說(shuō),基本數(shù)據(jù)類型是自我說(shuō)明的。
2.構(gòu)造數(shù)據(jù)類型構(gòu)造數(shù)據(jù)類型
是根據(jù)已定義的一個(gè)或多個(gè)數(shù)據(jù)類型用構(gòu)造的方法來(lái)定義的。也就是說(shuō),一個(gè)構(gòu)造類型的值可以分解成若干個(gè)“成員”或“元素”.每個(gè)“成員”都是一個(gè)基本數(shù)據(jù)類型或又是一個(gè)構(gòu)造類型。在C語(yǔ)言中,構(gòu)造類型有以下幾種:
·數(shù)組類型
·結(jié)構(gòu)類型
·聯(lián)合類型
3.指針類型
指針是一種特殊的,同時(shí)又是具有重要作用的數(shù)據(jù)類型。其值用來(lái)表示某個(gè)量在內(nèi)存儲(chǔ)器中的地址。雖然指針變量的取值類似于整型量,但這是兩個(gè)類型完全不同的量,因此不能混為一談。4.空類型在調(diào)用函數(shù)值時(shí),通常應(yīng)向調(diào)用者返回一個(gè)函數(shù)值。這個(gè)返回的函數(shù)值是具有一定的數(shù)據(jù)類型的,應(yīng)在函數(shù)定義及函數(shù)說(shuō)明中給以說(shuō)明,例如在例題中給出的max函數(shù)定義中,函數(shù)頭為: int max(int a,int b);其中“int ”類型說(shuō)明符即表示該函數(shù)的返回值為整型量。又如在例題中,使用了庫(kù)函數(shù) sin,由于系統(tǒng)規(guī)定其函數(shù)返回值為雙精度浮點(diǎn)型,因此在賦值語(yǔ)句s=sin (x);中,s 也必須是雙精度浮點(diǎn)型,以便與sin函數(shù)的返回值一致。所以在說(shuō)明部分,把s說(shuō)明為雙精度浮點(diǎn)型。但是,也有一類函數(shù),調(diào)用后并不需要向調(diào)用者返回函數(shù)值, 這種函數(shù)可以定義為“空類型”.其類型說(shuō)明符為void.在本講中,我們先介紹基本數(shù)據(jù)類型中的整型、浮點(diǎn)型和字符型。其余類型在以后各講中陸續(xù)介紹。
對(duì)于基本數(shù)據(jù)類型量,按其取值是否可改變又分為常量和變量?jī)煞N。在程序執(zhí)行過(guò)程中,其值不發(fā)生改變的量稱為常量,取值可變的量稱為變量。它們可與數(shù)據(jù)類型結(jié)合起來(lái)分類。例如,可分為整型常量、整型變量、浮點(diǎn)常量、浮點(diǎn)變量、字符常量、字符變量、枚舉常量、枚舉變量。在程序中,常量是可以不經(jīng)說(shuō)明而直接引用的,而變量則必須先說(shuō)明后使用。
整型量
整型量包括整型常量、整型變量。整型常量就是整常數(shù)。在C語(yǔ)言中,使用的整常數(shù)有八進(jìn)制、十六進(jìn)制和十進(jìn)制三種。
整型常量
1.八進(jìn)制整常數(shù)八進(jìn)制整常數(shù)必須以0開頭,即以0作為八進(jìn)制數(shù)的前綴。數(shù)碼取值為0~7.八進(jìn)制數(shù)通常是無(wú)符號(hào)數(shù)。
以下各數(shù)是合法的八進(jìn)制數(shù):
015(十進(jìn)制為13) 0101(十進(jìn)制為65) 0177777(十進(jìn)制為65535)
以下各數(shù)不是合法的八進(jìn)制數(shù):
256(無(wú)前綴0) 03A2(包含了非八進(jìn)制數(shù)碼) -0127(出現(xiàn)了負(fù)號(hào))
2.十六進(jìn)制整常數(shù)
十六進(jìn)制整常數(shù)的前綴為0X或0x.其數(shù)碼取值為0~9,A~F或a~f.
以下各數(shù)是合法的十六進(jìn)制整常數(shù):
0X2A(十進(jìn)制為42) 0XA0 (十進(jìn)制為160) 0XFFFF (十進(jìn)制為65535)
以下各數(shù)不是合法的十六進(jìn)制整常數(shù):
5A (無(wú)前綴0X) 0X3H (含有非十六進(jìn)制數(shù)碼)
3.十進(jìn)制整常數(shù)
十進(jìn)制整常數(shù)沒有前綴。其數(shù)碼為0~9.
以下各數(shù)是合法的十進(jìn)制整常數(shù):
237 -568 65535 1627
以下各數(shù)不是合法的十進(jìn)制整常數(shù):
023 (不能有前導(dǎo)0) 23D (含有非十進(jìn)制數(shù)碼)
在程序中是根據(jù)前綴來(lái)區(qū)分各種進(jìn)制數(shù)的。因此在書寫常數(shù)時(shí)不要把前綴弄錯(cuò)造成結(jié)果不正確。4.整型常數(shù)的后綴在16位字長(zhǎng)的機(jī)器上,基本整型的長(zhǎng)度也為16位,因此表示的數(shù)的范圍也是有限定的。十進(jìn)制無(wú)符號(hào)整常數(shù)的范圍為0~65535,有符號(hào)數(shù)為-32768~+32767.八進(jìn)制無(wú)符號(hào)數(shù)的表示范圍為0~0177777.十六進(jìn)制無(wú)符號(hào)數(shù)的表示范圍為0X0~0XFFFF或0x0~0xFFFF.如果使用的數(shù)超過(guò)了上述范圍,就必須用長(zhǎng)整型數(shù)來(lái)表示。長(zhǎng)整型數(shù)是用后綴“L”或“l(fā)”來(lái)表示的。例如:
十進(jìn)制長(zhǎng)整常數(shù) 158L (十進(jìn)制為158) 358000L (十進(jìn)制為-358000)
八進(jìn)制長(zhǎng)整常數(shù) 012L (十進(jìn)制為10) 077L (十進(jìn)制為63) 0200000L (十進(jìn)制為65536)
十六進(jìn)制長(zhǎng)整常數(shù) 0X15L (十進(jìn)制為21) 0XA5L (十進(jìn)制為165) 0X10000L (十進(jìn)制為65536)
長(zhǎng)整數(shù)158L和基本整常數(shù)158 在數(shù)值上并無(wú)區(qū)別。但對(duì)158L,因?yàn)槭情L(zhǎng)整型量,C編譯系統(tǒng)將為它分配4個(gè)字節(jié)存儲(chǔ)空間。而對(duì)158,因?yàn)槭腔菊停环峙? 個(gè)字節(jié)的存儲(chǔ)空間。因此在運(yùn)算和輸出格式上要予以注意,避免出錯(cuò)。無(wú)符號(hào)數(shù)也可用后綴表示,整型常數(shù)的無(wú)符號(hào)數(shù)的后綴為“U”或“u”.例如: 358u,0x38Au,235Lu 均為無(wú)符號(hào)數(shù)。前綴,后綴可同時(shí)使用以表示各種類型的數(shù)。如0XA5Lu表示十六進(jìn)制無(wú)符號(hào)長(zhǎng)整數(shù)A5,其十進(jìn)制為165.
相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |