C語(yǔ)言-基礎(chǔ)教程-C語(yǔ)言字符型數(shù)據(jù)

字號(hào):

考試大計(jì)算機(jī)等級(jí)站整理:
    2.5.1字符常量
    字符常量是指用一對(duì)單引號(hào)括起來(lái)的一個(gè)字符。如‘a(chǎn)’,‘9’,‘!’。字符常量中的單引號(hào)只起定界作用并不表示字符本身。單引號(hào)中的字符不能是單引號(hào)(’)和反斜杠(\),它們特有的表示法在轉(zhuǎn)義字符中介紹。
    在CC語(yǔ)言中,字符是按其所對(duì)應(yīng)的ASCII碼值來(lái)存儲(chǔ)的,一個(gè)字符占一個(gè)字節(jié)。例如:字符ASCII碼值(十進(jìn)制)!33048149957A65B66a97b98
    注意字符'9'和數(shù)字9的區(qū)別,前者是字符常量,后者是整型常量,它們的含義和在計(jì)
    算機(jī)中的存儲(chǔ)方式都截然不同。
    由于C語(yǔ)言中字符常量是按整數(shù)(short型)存儲(chǔ)的,所以字符常量可以像整數(shù)一樣在程序中參與相關(guān)的運(yùn)算。例如:
    'a'-32;/*執(zhí)行結(jié)果97-32=65*/
    'A' 32;/*執(zhí)行結(jié)果65 32=97*/
    '9'-9;/*執(zhí)行結(jié)果57-9=48*/
    2.5.2字符串常量
    字符串常量是指用一對(duì)雙引號(hào)括起來(lái)的一串字符。雙引號(hào)只起定界作用,雙引號(hào)括起的字符串中不能是雙引號(hào)(")和反斜杠(\),它們特有的表示法在轉(zhuǎn)義字符中介紹。例如:
    "China","Cprogram","YES&NO","33312-2341","A"
    等。C語(yǔ)言中,字符串常量在內(nèi)存中存儲(chǔ)時(shí),系統(tǒng)自動(dòng)在字符串的末尾加一個(gè)“串結(jié)束標(biāo)志”,即ASCII碼值為0的字符NULL,常用\0表示。因此在程序中,長(zhǎng)度為n個(gè)字符的字符串常量,在內(nèi)存中占有n 1個(gè)字節(jié)的存儲(chǔ)空間。例如,字符串China有5個(gè)字符,作為字符串常量"China"存儲(chǔ)于內(nèi)存中時(shí),共占6個(gè)字節(jié),系統(tǒng)自動(dòng)在后面加上NULL字符,其存儲(chǔ)形式為:
    要特別注意字符串與字符串常量的區(qū)別,除了表示形式不同外,其存儲(chǔ)性質(zhì)也不相同,字符'A'只占1個(gè)字節(jié),而字符串常量"A"占2個(gè)字節(jié)。
    2.5.3轉(zhuǎn)義字符
    轉(zhuǎn)義字符是C語(yǔ)言中表示字符的一種特殊形式。通常使用轉(zhuǎn)義字符表示ASCII碼字符集中不可打印的控制字符和特定功能的字符,如用于表示字符常量的單撇號(hào)('),用于表示字符串常量的雙撇號(hào)(")和反斜杠(\)等。轉(zhuǎn)義字符用反斜杠\后面跟一個(gè)字符或一個(gè)八進(jìn)制或十六進(jìn)制數(shù)表示。表2-4給出了C語(yǔ)言中常用的轉(zhuǎn)義字符。
    字符常量中使用單引號(hào)和反斜杠以及字符常量中使用雙引號(hào)和反斜杠時(shí),都必須使用轉(zhuǎn)義字符表示,即在這些字符前加上反斜杠。
    在C程序中使用轉(zhuǎn)義字符\ddd或者\(yùn)xhh可以方便靈活地表示任意字符。\ddd為斜杠后面跟三位八進(jìn)制數(shù),該三位八進(jìn)制數(shù)的值即為對(duì)應(yīng)的八進(jìn)制ASCII碼值。\x后面跟兩位十六進(jìn)制數(shù),該兩位十六進(jìn)制數(shù)為對(duì)應(yīng)字符的十六進(jìn)制ASCII碼值。
    使用轉(zhuǎn)義字符時(shí)需要注意以下問(wèn)題:
    :1)轉(zhuǎn)義字符中只能使用小寫(xiě)字母,每個(gè)轉(zhuǎn)義字符只能看作一個(gè)字符。
    。2)\v垂直制表和\f換頁(yè)符對(duì)屏幕沒(méi)有任何影響,但會(huì)影響打印機(jī)執(zhí)行響應(yīng)操作。3)在C程序中,使用不可打印字符時(shí),通常用轉(zhuǎn)義字符表示。