計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言的數(shù)據(jù)類(lèi)型

字號(hào):

C語(yǔ)言有五種基本數(shù)據(jù)類(lèi)型:字符、整型、單精度實(shí)型、雙精度實(shí)型和空類(lèi)型。盡管這幾種類(lèi)型數(shù)據(jù)的長(zhǎng)度和范圍隨處理器的類(lèi)型和C語(yǔ)言編譯程序的實(shí)現(xiàn)而異,但以b i t為例,整數(shù)與CPU字長(zhǎng)相等,一個(gè)字符通常為一個(gè)字節(jié),浮點(diǎn)值的確切格式則根據(jù)實(shí)現(xiàn)而定。對(duì)于多數(shù)微機(jī),表2 - 1給出了五種數(shù)據(jù)的長(zhǎng)度和范圍。
    表中的長(zhǎng)度和范圍的取值是假定C P U的字長(zhǎng)為1 6 b i t。
    C語(yǔ)言還提供了幾種聚合類(lèi)型(aggregate types),包括數(shù)組、指針、結(jié)構(gòu)、共用體(聯(lián)合)、位域和枚舉。這些復(fù)雜類(lèi)型在以后的章節(jié)中討論。
    除v o i d類(lèi)型外,基本類(lèi)型的前面可以有各種修飾符。修飾符用來(lái)改變基本類(lèi)型的意義,以便更準(zhǔn)確地適應(yīng)各種情況的需求。修飾符如下:
    • signed(有符號(hào))。
    • unsigned(無(wú)符號(hào))。
    • long(長(zhǎng)型符)。
    • short(短型符)。修飾符s i g n e d、s h o r t、l o n g和u n s i g n e d適用于字符和整數(shù)兩種基本類(lèi)型,而l o n g還可用于d o u b l e(注意,由于long float與d o u b l e意思相同,所以A N S I標(biāo)準(zhǔn)刪除了多余的long float)。
    表2 - 2給出所有根據(jù)A N S I標(biāo)準(zhǔn)而組合的類(lèi)型、字寬和范圍。切記,在計(jì)算機(jī)字長(zhǎng)大于1 6位的系統(tǒng)中,short int與signed char可能不等。
    *表中的長(zhǎng)度和范圍的取值是假定C P U的字長(zhǎng)為1 6 b i t。因?yàn)檎麛?shù)的缺省定義是有符號(hào)數(shù),所以s i n g e d這一用法是多余的,但仍允許使用。某些實(shí)現(xiàn)允許將u n s i g n e d用于浮點(diǎn)型,如unsigned double。但這一用法降低了程序的可移
    植性,故建議一般不要采用。為了使用方便,C編譯程序允許使用整型的簡(jiǎn)寫(xiě)形式:
    • short int 簡(jiǎn)寫(xiě)為s h o r t。
    • long int 簡(jiǎn)寫(xiě)為l o n g。
    • unsigned short int 簡(jiǎn)寫(xiě)為unsigned short。
    • unsigned int 簡(jiǎn)寫(xiě)為u n s i g n e d。
    • unsigned long int 簡(jiǎn)寫(xiě)為unsigned long。
    即,i n t可缺省。