字元型量

字元型量

字元型量包括字元常量字元變數字元串常量是由一對雙引號括起的字元序列。字元變數的取值是字元常量,即單個字元。字元變數的類型說明符是char。字元變數類型說明的格式和書寫規則都與整型變數相同。

基本介紹

  • 中文名:字元型量
  • 字元串常量:一對雙引號括起的字元序列
  • 類型說明符:char
  • 類型說明:與整型變數相同
字元常量,字元變數,字元串常量,

字元常量

定義
C語言中的字元常量是用單引號(')括起來的一個字元。如'A'、'x'、'D'、 '?'、'3'、'X'等都是字元常量。對於字元來說,'x'和'X'是兩個不同的字元。
特點
C語言中,字元常量有以下特點:
1.字元常量只能用單引號括起來,不能用雙引號或其它括弧
2.字元常量只能是單個字元,不能是字元串。
3.字元可以是字元集中任意字元。但數字被定義為字元型之後就不能參與數值運算。如'5'和5 是不同的。'5'是字元常量,不能參與運算。
轉義字元
轉義字元是一種特殊的字元常量。轉義字元以反斜線"\"開頭,後跟一個或幾個字元。轉義字元具有特定的含義,不同於字元原有的意義,故稱“轉義”字元。例如,一些printf函式的格式串中用到的“\n”就是一個轉義字元,其意義是“回車換行”。轉義字元主要用來表示那些用一般字元不便於表示的控制代碼。
如'\r'就代表回車符號,而不代表反斜槓和字母r兩個字元。再如'\101'代表字母'A','\010'代表退格,'\x22'就代表"。用這兩種方法可以表示任何ASCII碼字元。這些轉義字元只有幾個很常用,'\n'、'\t'、'\''、'\\'。 附ASCII碼字元表。
ASCII碼字元表
字元形式
含義
\n
換行
\t
橫向跳格(跳到下一個輸出區域)
\v
豎向跳格
\b
退格
\r
回車
\f
走紙換頁
\\
反斜槓字元 \
\'
單引號 '
\ddd
1至3位八進制數所代表的字元
\xhh
1到2位十六進制數所代表的字元
廣義地講,C語言字元集中的任何一個字元均可用轉義字元來表示。表中的\ddd和\xhh正是為此而提出的。ddd和hh分別為八進制和十六進制的ASCII代碼。如\101表示字?quot;A" ,\102表示字母"B",\134表示反斜線,\XOA表示換行等。轉義字元的使用
void main()
{
int a,b,c;
a=5; b=6; c=7;
printf("%d\n\t%d %d\n %d %d\t\b%d\n",a,b,c,a,b,c);
}
此程式練習轉義字元的使用
a、b、c為整數 5->a,6->b,7->c
調用printf顯示程式運行結果
printf("%d\n\t%d %d\n %d %d\t\b%d\n",a,b,c,a,b,c);
程式在第一列輸出a值5之後就是“\n”,故回車換行;接著又是“\t”,於是跳到下一定位點置(設定位點置間隔為8),再輸出b值6;空二格再輸出c 值7後又是"\n",因此再回車換行;再空二格之後又輸出a值5;再空三格又輸出b的值6;再次後"\t"跳到下一定位點置(與上一行的6 對齊),但下一轉義字元“\b”又使退回一格,故緊挨著6再輸出c值7。

字元變數

字元變數是用來存放字元常量的,一個字元變數中只能存放一個字元。 字元變數的定義形式如右:char x1,x2; 定義了兩個字元型變數。可以使用賦值語句對變數x1和x2賦值,如:x1='x’;x2='y'; 字元型數據常量和變數)在記憶體中占一個位元組的空間。
系統在表示一個字元型數據時,並不是將字元本身的形狀存入記憶體,而只是將字元的ASCII碼存入記憶體。在記憶體中所有的數據又是以二進制的形式存放的。所以上面的例子中x1和x2在記憶體中的表示如下: 'x'、'y'的ASCII碼為120、121。而120、121的二進制形式為01111000、 01111001。
所以x1、x2在記憶體中的表示為 01111000、01111001 在這種情況下,我們也可以把字元數據當成數值來對待。看下面幾個例子:
main() { char x1,x2; x1=120;x2=121; printf("%c,%c",x1,x2); } 運行結果: x,y
這個例子中給x1和x2兩個字元型變數分別賦了兩個整型常量120和121 。而在輸出的時候是按照字元型數據輸出x1與x2的值。運行結果是字元,這就說明:字元型數據可以看成是0到255之間的整型數據。 main() { char x1,x2; x1='x';x2='y'; x1=x1-32; x2=x2-32; printf("%c,%c",x1,x2); } 運行結果: X,Y
這個例子是將小寫字母轉化為大寫字母的程式。我們在對ASCII碼字元表進行觀察後會發現,大小寫對應的字母,它們之間的ASCII碼正好相差32。利用這個特性和上一個特性,我們可以編寫出非常簡單的大小寫轉化程式,正如本例。

字元串常量

字元串常量是由一對雙引號括起的字元序列。例如: "CHINA" ,"C program: , "$12.5" 等都是合法的字元串常量。字元串常量和字元常量是不同的量。它們之間主要有以下區別:
1.字元常量由單引號括起來,字元串常量由雙引號括起來。
2.字元常量只能是單個字元,字元串常量則可以含一個或多個字元。
3.可以把一個字元常量賦予一個字元變數,但不能把一個字元串常量賦予一個字元變數。在C語言中沒有相應的字元串變數。
這是與BASIC 語言不同的。但是可以用一個字元數組來存放一個字元串常量。在數組一章內予以介紹。
4.字元常量占一個位元組的記憶體空間。字元串常量占的記憶體位元組數等於字元串中位元組數加1。增加的一個位元組中存放字元"\0"(ASCII碼為0)。這是字元串結束的標誌。例如,字元串 "C program"在記憶體中所占的位元組為:C program\0。字元常量'a'和字元串常量"a"雖然都只有一個字元,但在記憶體中的情況是不同的。
'a'在記憶體中占一個位元組,可表示為:a
"a"在記憶體中占二個位元組,可表示為:a\0符號常量
符號常量
在C語言中,可以用一個標識符來表示一個常量,稱之為符號常量。符號常量在使用之前必須先定義,其一般形式為:
#define 標識符 常量
其中#define也是一條預處理命令(預處理命令都?quot;#"開頭),稱為宏定義命令(在第九章預處理程式中將進一步介紹),其功能是把該標識符定義為其後的常量值。一經定義,以後在程式中所有出現該標識符的地方均代之以該常量值。習慣上符號常量的標識符用大寫字母,變數標識符用小寫字母,以示區別。
#define PI 3.14159
void main(){
float s,r;
r=5;
s=PI*r*r;
printf("s=%f\n",s);
}
由宏定義命令定義PI 為3.14159 s,r定義為實數 5->r PI*r*r->s
顯示程式結果 float s,r; r=5; s=PI*r*r; 本程式在主函式之前由宏定義命令定義PI 為3.14159,在程式中即以該值代替PI 。s=PI*r*r等效於s=3.14159*r*r。應該注意的是,符號常量不是變數,它所代表的值在整個作用域內不能再改變。也就是說,在程式中,不能再用賦值語句對它重新賦值。

相關詞條

熱門詞條

聯絡我們