C語(yǔ)言程序設(shè)計(jì)(第2章數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式)

字號(hào):

2.1 C語(yǔ)言的數(shù)據(jù)類(lèi)型
    2.2 常量與變量
     2.2.1 標(biāo)識(shí)符命名
     2.2.2 常量
     2.2.3 變量
    2.3 整型數(shù)據(jù)
     2.3.1 整型常量
     2.3.2 整型變量
    2.4 實(shí)型數(shù)據(jù)
     2.4.1 實(shí)型常量
     2.4.2 實(shí)型變量
    2.5 字符型數(shù)據(jù)
     2.5.1 字符常量
     2.5.2 字符串常量
     2.5.3 轉(zhuǎn)義字符
     2.5.4 符號(hào)常量
     2.5.5 字符變量
    2.6 運(yùn)算符
     2.6.1 算術(shù)運(yùn)算符
     2.6.2 自增和自減
     2.6.3 關(guān)系和邏輯運(yùn)算符
    2.1 C語(yǔ)言的數(shù)據(jù)類(lèi)型
    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ù)與C P U字長(zhǎng)相等,一個(gè)字符通常為一個(gè)字節(jié),浮點(diǎn)值的確切格式則根據(jù)實(shí)現(xiàn)而定。對(duì)于多數(shù)微機(jī),表2 - 1給出了五種數(shù)據(jù)的長(zhǎng)度和范圍。
    表2-1 基本類(lèi)型的字長(zhǎng)和范圍
    類(lèi)型長(zhǎng)度(bit)范圍
    char(字符型)80~255
    int(整型)16-32768~32767
    float(單精度型)32約精確到6位數(shù)
    double(雙精度型)64約精確到12位數(shù)
    void (空值)0無(wú)值
    表中的長(zhǎng)度和范圍的取值是假定CPU的字長(zhǎng)為16 bit。
    C語(yǔ)言還提供了幾種聚合類(lèi)型(aggregate types),包括數(shù)組、指針、結(jié)構(gòu)、共用體(聯(lián)合)、位域和枚舉。這些復(fù)雜類(lèi)型在以后的章節(jié)中討論。
    除void類(lèi)型外,基本類(lèi)型的前面可以有各種修飾符。修飾符用來(lái)改變基本類(lèi)型的意義,以便更準(zhǔn)確地適應(yīng)各種情況的需求。修飾符如下:
    • signed(有符號(hào))。
    • unsigned(無(wú)符號(hào))。
    • long(長(zhǎng)型符)。
    • short(短型符)。
    修飾符signed、short、long和unsigned適用于字符和整數(shù)兩種基本類(lèi)型,而long還可用于double(注意,由于long float與double意思相同,所以ANSI標(biāo)準(zhǔn)刪除了多余的long float)。
    表2 - 2給出所有根據(jù)ANSI標(biāo)準(zhǔn)而組合的類(lèi)型、字寬和范圍。切記,在計(jì)算機(jī)字長(zhǎng)大于1 6位的系統(tǒng)中, short int與signed char可能不等。
    表2-2 ANSI標(biāo)準(zhǔn)中的數(shù)據(jù)類(lèi)型
    類(lèi)型長(zhǎng)度(bit)范圍
    char(字符型8ASCII字符
    unsigned char(無(wú)符號(hào)字符 80~255
    signed char(有符號(hào)字符型)8-128~127
    int(整型)16-32768~32767
    unsigned int(無(wú)符號(hào)整型)160~65535
    signed int(有符號(hào)整型)16同 int
    short(短整型)8 -128~127
    unsigned short int(無(wú)符號(hào)短整型)80~255
    signed short int(有符號(hào)短整型) 8同short int
    long int(長(zhǎng)整型)322147483648~2147483649
    signed long int(有符號(hào)長(zhǎng)整型)322147483648~2147483649
    unsigned long int(無(wú)符號(hào)長(zhǎng)整型)32 0~4294967296
    float(單精度型)32約精確到6位數(shù)
    double(雙精度型)64約精確到12位數(shù)
    *表中的長(zhǎng)度和范圍的取值是假定CPU的字長(zhǎng)為16 bit。
     因?yàn)檎麛?shù)的缺省定義是有符號(hào)數(shù),所以singed這一用法是多余的,但仍允許使用。某些實(shí)現(xiàn)允許將unsigned用于浮點(diǎn)型,如unsigned double。但這一用法降低了程序的可移植性,故建議一般不要采用。
    為了使用方便,C編譯程序允許使用整型的簡(jiǎn)寫(xiě)形式:
    • short int 簡(jiǎn)寫(xiě)為short。
    • long int 簡(jiǎn)寫(xiě)為long。
    • unsigned short int 簡(jiǎn)寫(xiě)為unsigned short。
    • unsigned int 簡(jiǎn)寫(xiě)為unsigned。
    • unsigned long int 簡(jiǎn)寫(xiě)為unsigned long。
    即,int可缺省。
    2.2 常量與變量
    2.2.1 標(biāo)識(shí)符命名
    在C語(yǔ)言中,標(biāo)識(shí)符是對(duì)變量、函數(shù)標(biāo)號(hào)和其它各種用戶(hù)定義對(duì)象的命名。標(biāo)識(shí)符的長(zhǎng)度可以是一個(gè)或多個(gè)字符。絕大多數(shù)情況下,標(biāo)識(shí)符的第一個(gè)字符必須是字母或下劃線,隨后的字符必須是字母、數(shù)字或下劃線(某些C語(yǔ)言編譯器可能不允許下劃線作為標(biāo)識(shí)符的起始字符)。
    下面是一些正確或錯(cuò)誤標(biāo)識(shí)符命名的實(shí)例。
    正確形式 錯(cuò)誤形式
    count 2count