1. 程式人生 > >C語言之字元型資料型別

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"在記憶體中佔二個位元組,