字元型資料是什麼意思怎麼理解
字元型資料包括字元常量和字元變數。學習程式的朋友可能會對此比較瞭解。下面是小編整理的字元型資料的介紹,歡迎閱讀。
字元型資料的介紹
字元型***Character***資料是不具計算能力的文字資料型別,用字母C表示。
它包括中文字元、英文字元、數字字元和其他ASCⅡ字元,其長度***即字元個數***範圍是0-254個字元。
字元型資料是用單引號括起來的一個字元。例如:
'a'、'b'、'='、'+'、'?'
都是合法字元型資料。
在C語言中,字元型資料有以下特點:
字元型資料只能用單引號括起來,不能用雙引號或其它括號。 字元型資料只能是單個字元,不能是字串。 字元可以是字符集中任意字元。但數字被定義為字元型之後就不能參與數值運算。如'5'和5 是不同的。'5'是字元型資料,不能參與運算。
轉義字元
轉義字元是一種特殊的字元。轉義字元以反斜線"\"開頭,後跟一個或幾個字元。轉義字元具有特定的含義,不同於字元原有的意義,故稱“轉義”字元。例如,在前面各示例中printf函式的格式串中用到的“\n”就是一個轉義字元,其意義是“回車換行”。轉義字元主要用來表示那些用一般字元不便於表示的控制程式碼。
廣義地講,C語言字符集中的任何一個字元均可用轉義字元來表示。表中的\ddd和\xhh正是為此而提出的。ddd和hh分別為八進位制和十六進位制的ASCII程式碼。如\101表示字母"A" ,\102表示字母"B",\134表示反斜線,\XOA表示換行等。
字元常量的意思
字元常量是指用一對單引號括起來的一個字元。如‘a’,‘9’,‘!’。字元常量中的單引號只起定界作用並不表示字元本身。單引號中的字元不能是單引號***’***和反斜槓***\***,它們特有的表示法在轉義字元中介紹。
在CC語言中,字元是按其所對應的ASCII碼值來儲存的,一個字元佔一個位元組。例如:字元ASCII碼值***十進位制***!33048149957A65B66a97b98
注意字元'9'和數字9的區別,前者是字元常量,後者是整型常量,它們的含義和在計 算機中的儲存方式都截然不同。
由於C語言中字元常量是按整數***short型***儲存的,所以字元常量可以像整數一樣在程式中參與相關的運算。例如:
'a'-32;/*執行結果97-32=65*/
'A'+32;/*執行結果65+32=97*/
'9'-9;/*執行結果57-9=48*/
字串常量的介紹
字串常量是指用一對雙引號括起來的一串字元。雙引號只起定界作用,雙引號括起的字串中不能是雙引號***"***和反斜槓***\***,它們特有的表示法在轉義字元中介紹。例如: "China","Cprogram","YES&NO","33312-2341","A"
等。C語言中,字串常量在記憶體中儲存時,系統自動在字串的末尾加一個“串結束標誌”,即ASCII碼值為0的字元NULL,常用\0表示。因此在程式中,長度為n個字元的字串常量,在記憶體中佔有n+1個位元組的儲存空間。例如,字串China有5個字元,作為字串常量"China"儲存於記憶體中時,共佔6個位元組,系統自動在後面加上NULL字元,其儲存形式為:
要特別注意字串與字串常量的區別,除了表示形式不同外,其儲存性質也不相同,字元'A'只佔1個位元組,而字串常量"A"佔2個位元組。
轉義字元
轉義字元是C語言中表示字元的一種特殊形式。通常使用轉義字元表示ASCII碼字符集中不可列印的控制字元和特定功能的字元,如用於表示字元常量的單撇號***'***,用於表示字串常量的雙撇號***"***和反斜槓***\***等。轉義字元用反斜槓\後面跟一個字元或一個八進位制或十六進位制數表示。表2-4給出了C語言中常用的轉義字元。
字元常量中使用單引號和反斜槓以及字元常量中使用雙引號和反斜槓時,都必須使用轉義字元表示,即在這些字元前加上反斜槓。
在C程式中使用轉義字元\ddd或者\xhh可以方便靈活地表示任意字元。\ddd為斜槓後面跟三位八進位制數,該三位八進位制數的值即為對應的八進位制ASCII碼值。\x後面跟兩位十六進位制數,該兩位十六進位制數為對應字元的十六進位制ASCII碼值。
使用轉義字元時需要注意以下問題:
:1***轉義字元中只能使用小寫字母,每個轉義字元只能看作一個字元。
。2***\v垂直製表和\f換頁符對螢幕沒有任何影響,但會影響印表機執行響應操作。3***在C程式中,使用不可列印字元時,通常用轉義字元表示。
符號常量
C語言允許將程式中的常量定義為一個識別符號,稱為符號常量。符號常量一般使用大寫英文字母表示,以區別於一般用小寫字母表示的變數。符號常量在使用前必須先定義,定義的形式是:
#define<符號常量名><常量>
例如:
#definePI3.1415926
6#defineTRUE1
1#definrFALSE0
0#defineSTAR'*'
這裡定義PI、TRUE、FLASE、STAR為符號常量,其值分別為3.1415926,1,0,'*'。 #define是C語言的預處理命令,它表示經定義的符號常量在程式執行前將由其對應的常量替換。
定義符號常量的目的是為了提高程式的可讀性,便於程式的除錯和修改。因此在定義符號常量名時,應使其儘可能地表達它所代表的常量的含義,例如前面所定義的符號常量名PI***π***,表示圓周率3.1415926。此外,若要對一個程式中多次使用的符號常量的值進行修改,只須對預處理命令中定義的常量值進行修改即可。
字元變數
字元變數用來存放字元常量,注意只能存放一個字元,不要以為在一個字元變數中可以放字串。字元變數的定義形式如下:
charc1,c2;
它表示c1和c2為字元變數,各放一個字元。因此可以用下面語句對c1、c2賦值: c1='a';c2='b';
c1、c2被指定為字元變數。但在第3行中,將整數97和98分別賦給c1和c2,它的作用相當於以下兩個賦值語句:
c1='a';c2='b';
因為'a'和'b'的ASCII碼為97和98。第4行將輸出兩個字元。"%c"是輸出字元的格式。程式輸出:
它的作用是將兩個小寫字母轉換為大寫字母。因為'a'的ASCII碼為97,而'A'為65,'b'為98,'B'為66。從ASCII程式碼表中可以看到每一個小寫字母比大寫字母的ASCII碼大32。即'a'='A'+32。