2.5.1字符常量
字符常量是指用一對單引號括起來的一個字符。如‘a(chǎn)’,‘9’,‘!’。字符常量中的單引號只起定界作用并不表示字符本身。單引號中的字符不能是單引號(’)和反斜杠(\),它們特有的表示法在轉(zhuǎn)義字符中介紹。
在CC語言中,字符是按其所對應(yīng)的ASCII碼值來存儲的,一個字符占一個字節(jié)。例如:字符ASCII碼值(十進(jìn)制)!33048149957A65B66a97b98
注意字符'9'和數(shù)字9的區(qū)別,前者是字符常量,后者是整型常量,它們的含義和在計
算機(jī)中的存儲方式都截然不同。
由于C語言中字符常量是按整數(shù)(short型)存儲的,所以字符常量可以像整數(shù)一樣在程序中參與相關(guā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字符串常量
字符串常量是指用一對雙引號括起來的一串字符。雙引號只起定界作用,雙引號括起的字符串中不能是雙引號(")和反斜杠(\),它們特有的表示法在轉(zhuǎn)義字符中介紹。例如:
"China","Cprogram","YES&NO","33312-2341","A"
等。C語言中,字符串常量在內(nèi)存中存儲時,系統(tǒng)自動在字符串的末尾加一個“串結(jié)束標(biāo)志”,即ASCII碼值為0的字符NULL,常用\0表示。因此在程序中,長度為n個字符的字符串常量,在內(nèi)存中占有n+1個字節(jié)的存儲空間。例如,字符串China有5個字符,作為字符串常量"China"存儲于內(nèi)存中時,共占6個字節(jié),系統(tǒng)自動在后面加上NULL字符,其存儲形式為:
要特別注意字符串與字符串常量的區(qū)別,除了表示形式不同外,其存儲性質(zhì)也不相同,字符'A'只占1個字節(jié),而字符串常量"A"占2個字節(jié)。
2.5.3轉(zhuǎn)義字符
轉(zhuǎn)義字符是C語言中表示字符的一種特殊形式。通常使用轉(zhuǎn)義字符表示ASCII碼字符集中不可打印的控制字符和特定功能的字符,如用于表示字符常量的單撇號('),用于表示字符串常量的雙撇號(")和反斜杠(\)等。轉(zhuǎn)義字符用反斜杠\后面跟一個字符或一個八進(jìn)制或十六進(jìn)制數(shù)表示。表2-4給出了C語言中常用的轉(zhuǎn)義字符。
字符常量中使用單引號和反斜杠以及字符常量中使用雙引號和反斜杠時,都必須使用轉(zhuǎn)義字符表示,即在這些字符前加上反斜杠。
在C程序中使用轉(zhuǎn)義字符\ddd或者\xhh可以方便靈活地表示任意字符。\ddd為斜杠后面跟三位八進(jìn)制數(shù),該三位八進(jìn)制數(shù)的值即為對應(yīng)的八進(jìn)制ASCII碼值。\x后面跟兩位十六進(jìn)制數(shù),該兩位十六進(jìn)制數(shù)為對應(yīng)字符的十六進(jìn)制ASCII碼值。
使用轉(zhuǎn)義字符時需要注意以下問題:
:1)轉(zhuǎn)義字符中只能使用小寫字母,每個轉(zhuǎn)義字符只能看作一個字符。
。2)\v垂直制表和\f換頁符對屏幕沒有任何影響,但會影響打印機(jī)執(zhí)行響應(yīng)操作。3)在C程序中,使用不可打印字符時,通常用轉(zhuǎn)義字符表示。
2.5.4符號常量
C語言允許將程序中的常量定義為一個標(biāo)識符,稱為符號常量。符號常量一般使用大寫英文字母表示,以區(qū)別于一般用小寫字母表示的變量。符號常量在使用前必須先定義,定義的形式是:
#define<符號常量名><常量>
例如:
#definePI3.1415926
6#defineTRUE1
1#definrFALSE0
0#defineSTAR'*'
這里定義PI、TRUE、FLASE、STAR為符號常量,其值分別為3.1415926,1,0,'*'。
#define是C語言的預(yù)處理命令,它表示經(jīng)定義的符號常量在程序運行前將由其對應(yīng)的常量替換。
定義符號常量的目的是為了提高程序的可讀性,便于程序的調(diào)試和修改。因此在定義符號常量名時,應(yīng)使其盡可能地表達(dá)它所代表的常量的含義,例如前面所定義的符號常量名PI(π),表示圓周率3.1415926。此外,若要對一個程序中多次使用的符號常量的值進(jìn)行修改,只須對預(yù)處理命令中定義的常量值進(jìn)行修改即可。
2.5.5字符變量
字符變量用來存放字符常量,注意只能存放一個字符,不要以為在一個字符變量中可以放字符串。字符變量的定義形式如下:
charc1,c2;
;
它表示c1和c2為字符變量,各放一個字符。因此可以用下面語句對c1、c2賦值:
c1='a';c2='b';
c1、c2被指定為字符變量。但在第3行中,將整數(shù)97和98分別賦給c1和c2,它的作用相當(dāng)于以下兩個賦值語句:
c1='a';c2='b';
因為'a'和'b'的ASCII碼為97和98。第4行將輸出兩個字符。"%c"是輸出字符的格式。程序輸出:
它的作用是將兩個小寫字母轉(zhuǎn)換為大寫字母。因為'a'的ASCII碼為97,而'A'為65,'b'為98,'B'為66。從ASCII代碼表中可以看到每一個小寫字母比大寫字母的ASCII碼大32。即'a'='A'+32。
字符常量是指用一對單引號括起來的一個字符。如‘a(chǎn)’,‘9’,‘!’。字符常量中的單引號只起定界作用并不表示字符本身。單引號中的字符不能是單引號(’)和反斜杠(\),它們特有的表示法在轉(zhuǎn)義字符中介紹。
在CC語言中,字符是按其所對應(yīng)的ASCII碼值來存儲的,一個字符占一個字節(jié)。例如:字符ASCII碼值(十進(jìn)制)!33048149957A65B66a97b98
注意字符'9'和數(shù)字9的區(qū)別,前者是字符常量,后者是整型常量,它們的含義和在計
算機(jī)中的存儲方式都截然不同。
由于C語言中字符常量是按整數(shù)(short型)存儲的,所以字符常量可以像整數(shù)一樣在程序中參與相關(guā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字符串常量
字符串常量是指用一對雙引號括起來的一串字符。雙引號只起定界作用,雙引號括起的字符串中不能是雙引號(")和反斜杠(\),它們特有的表示法在轉(zhuǎn)義字符中介紹。例如:
"China","Cprogram","YES&NO","33312-2341","A"
等。C語言中,字符串常量在內(nèi)存中存儲時,系統(tǒng)自動在字符串的末尾加一個“串結(jié)束標(biāo)志”,即ASCII碼值為0的字符NULL,常用\0表示。因此在程序中,長度為n個字符的字符串常量,在內(nèi)存中占有n+1個字節(jié)的存儲空間。例如,字符串China有5個字符,作為字符串常量"China"存儲于內(nèi)存中時,共占6個字節(jié),系統(tǒng)自動在后面加上NULL字符,其存儲形式為:
要特別注意字符串與字符串常量的區(qū)別,除了表示形式不同外,其存儲性質(zhì)也不相同,字符'A'只占1個字節(jié),而字符串常量"A"占2個字節(jié)。
2.5.3轉(zhuǎn)義字符
轉(zhuǎn)義字符是C語言中表示字符的一種特殊形式。通常使用轉(zhuǎn)義字符表示ASCII碼字符集中不可打印的控制字符和特定功能的字符,如用于表示字符常量的單撇號('),用于表示字符串常量的雙撇號(")和反斜杠(\)等。轉(zhuǎn)義字符用反斜杠\后面跟一個字符或一個八進(jìn)制或十六進(jìn)制數(shù)表示。表2-4給出了C語言中常用的轉(zhuǎn)義字符。
字符常量中使用單引號和反斜杠以及字符常量中使用雙引號和反斜杠時,都必須使用轉(zhuǎn)義字符表示,即在這些字符前加上反斜杠。
在C程序中使用轉(zhuǎn)義字符\ddd或者\xhh可以方便靈活地表示任意字符。\ddd為斜杠后面跟三位八進(jìn)制數(shù),該三位八進(jìn)制數(shù)的值即為對應(yīng)的八進(jìn)制ASCII碼值。\x后面跟兩位十六進(jìn)制數(shù),該兩位十六進(jìn)制數(shù)為對應(yīng)字符的十六進(jìn)制ASCII碼值。
使用轉(zhuǎn)義字符時需要注意以下問題:
:1)轉(zhuǎn)義字符中只能使用小寫字母,每個轉(zhuǎn)義字符只能看作一個字符。
。2)\v垂直制表和\f換頁符對屏幕沒有任何影響,但會影響打印機(jī)執(zhí)行響應(yīng)操作。3)在C程序中,使用不可打印字符時,通常用轉(zhuǎn)義字符表示。
2.5.4符號常量
C語言允許將程序中的常量定義為一個標(biāo)識符,稱為符號常量。符號常量一般使用大寫英文字母表示,以區(qū)別于一般用小寫字母表示的變量。符號常量在使用前必須先定義,定義的形式是:
#define<符號常量名><常量>
例如:
#definePI3.1415926
6#defineTRUE1
1#definrFALSE0
0#defineSTAR'*'
這里定義PI、TRUE、FLASE、STAR為符號常量,其值分別為3.1415926,1,0,'*'。
#define是C語言的預(yù)處理命令,它表示經(jīng)定義的符號常量在程序運行前將由其對應(yīng)的常量替換。
定義符號常量的目的是為了提高程序的可讀性,便于程序的調(diào)試和修改。因此在定義符號常量名時,應(yīng)使其盡可能地表達(dá)它所代表的常量的含義,例如前面所定義的符號常量名PI(π),表示圓周率3.1415926。此外,若要對一個程序中多次使用的符號常量的值進(jìn)行修改,只須對預(yù)處理命令中定義的常量值進(jìn)行修改即可。
2.5.5字符變量
字符變量用來存放字符常量,注意只能存放一個字符,不要以為在一個字符變量中可以放字符串。字符變量的定義形式如下:
charc1,c2;
;
它表示c1和c2為字符變量,各放一個字符。因此可以用下面語句對c1、c2賦值:
c1='a';c2='b';
c1、c2被指定為字符變量。但在第3行中,將整數(shù)97和98分別賦給c1和c2,它的作用相當(dāng)于以下兩個賦值語句:
c1='a';c2='b';
因為'a'和'b'的ASCII碼為97和98。第4行將輸出兩個字符。"%c"是輸出字符的格式。程序輸出:
它的作用是將兩個小寫字母轉(zhuǎn)換為大寫字母。因為'a'的ASCII碼為97,而'A'為65,'b'為98,'B'為66。從ASCII代碼表中可以看到每一個小寫字母比大寫字母的ASCII碼大32。即'a'='A'+32。

