基本介紹
字元常量,字元變數,字元串常量,
字元常量
定義
特點
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符號常量
符號常量
#define 標識符 常量