C語言之字元型資料型別
字元型資料型別就是字元
1、字元資料的表示
字元型資料是用單引號括起來的一個字元。例如:
'a'、'b'、'='、'+'、'?'都是合法字元型資料。
在C語言中,字元型資料有以下特點:
字元型資料只能用單引號括起來,不能用雙引號或其它括號。
字元型資料只能是單個字元,不能是字串。
字元可以是字符集中任意字元。但數字被定義為字元型之後就不能參與數值運算。如'5'和5 是不同的。'5'是字元型資料,不能參與運算。
轉義字元
轉義字元是一種特殊的字元。轉義字元以反斜線"\"開頭,後跟一個或幾個字元。轉義字元具有特定的含義,不同於字元原有的意義,故稱“轉義”字元。
轉義字元主要用來表示那些用一般字元不便於表示的控制程式碼。
常用的轉義字元及其含義 | ||
轉義字元 | 轉義字元的意義 | ASCII程式碼 |
\n | 回車換行 | 10 |
\t | 橫向跳到下一製表位置 | 9 |
\b | 退格 | 8 |
\r | 回車 | 13 |
\f | 走紙換頁 | 12 |
\\ | 反斜線符"\" | 92 |
\' | 單引號符 | 39 |
\” | 雙引號符 | 34 |
\a | 鳴鈴 | 7 |
\ddd | 1~3位八進位制數所代表的字元 | |
\xhh | 1~2位十六進位制數所代表的字元 |
2、字元型別說明符
字元變數的型別說明符是char。字元變數型別定義的格式和書寫規則都與整型變數相同。例如:
char a,b;
3、字元變數在記憶體中的儲存形式及使用方法
每個字元變數被分配一個位元組的記憶體空間,因此只能存放一個字元。字元值是以ASCII碼的形式存放在變數的記憶體單元之中的。
如x的十進位制ASCII碼是120,y的十進位制ASCII碼是121。對字元變數a、b賦予'x'和'y'值:
a='x';
b='y';
實際上是在a、b兩個單元記憶體放120和121的二進位制程式碼:
例:向字元變數賦以整數。
#include<stdio.h>
int main(void)
{
chara,b;
a=120;
b=121;
printf("%c,%c\n",a,b);
printf("%d,%d\n",a,b);
return0;
}
本程式中定義a,b為字元型,但在賦值語句中賦以整型值。從結果看,a,b值的輸出形式取決於printf函式格式串中的格式符,當格式符為"c"時,對應輸出的變數值為字元,當格式符為"d"時,對應輸出的變數值為整數。
由此可以看出:
(1)小寫的ASCII碼比大寫的ASCII碼大32
(2)後面的ASCII碼比前面的ASCII碼大
(3)'3'要變化成3需要‘3’-‘0’=3
4、字串
字串是由一對雙引號括起的字元序列。例如: "CHINA" ,“C program” , "$12.5" 等都是合法的字串。
字串和字元不同,它們之間主要有以下區別:
字元由單引號括起來,字串由雙引號括起來。
字元只能是單個字元,字串則可以含一個或多個字元。
可以把一個字元型資料賦予一個字元變數,但不能把一個字串賦予一個字元變數。
字元佔一個位元組的記憶體空間。字串佔的記憶體位元組數等於字串中位元組數加1。增加的一個位元組中存放字元"\0" (ASCII碼為0)。這是字串結束的標誌。
例如,字串 "C program" 在記憶體中所佔的位元組為:10個位元組
字元'a'和字串"a"雖然都只有一個字元,但在記憶體中的情況是不同的。
'a'在記憶體中佔一個位元組,"a"在記憶體中佔二個位元組,