在c語(yǔ)言中char型數(shù)據(jù)在內(nèi)存中的儲(chǔ)存形式為“ASCII碼”。在C語(yǔ)言中,將一個(gè)字符常量放到一個(gè)字符變量中,實(shí)際并不是把該字符本身放到內(nèi)存單元中,而是將與該字符相對(duì)應(yīng)的ASCII碼放到存儲(chǔ)單元中。
本教程操作環(huán)境:windows7系統(tǒng)、c99版本、Dell G3電腦。
在c語(yǔ)言中char型數(shù)據(jù)在內(nèi)存中的儲(chǔ)存形式為“ASCII碼”。
教程推薦:《c語(yǔ)言教程視頻》
c語(yǔ)言 char型
字符型數(shù)據(jù)類型就是字符
1、字符數(shù)據(jù)的表示
字符型數(shù)據(jù)是用單引號(hào)括起來(lái)的一個(gè)字符。例如:
'a'、'b'、'='、'+'、'?'都是合法字符型數(shù)據(jù)。
在C語(yǔ)言中,字符型數(shù)據(jù)有以下特點(diǎn):
字符型數(shù)據(jù)只能用單引號(hào)括起來(lái),不能用雙引號(hào)或其它括號(hào)。
字符型數(shù)據(jù)只能是單個(gè)字符,不能是字符串。
字符可以是字符集中任意字符。但數(shù)字被定義為字符型之后就不能參與數(shù)值運(yùn)算。如'5'和5 是不同的。'5'是字符型數(shù)據(jù),不能參與運(yùn)算。
轉(zhuǎn)義字符
轉(zhuǎn)義字符是一種特殊的字符。轉(zhuǎn)義字符以反斜線""開(kāi)頭,后跟一個(gè)或幾個(gè)字符。轉(zhuǎn)義字符具有特定的含義,不同于字符原有的意義,故稱“轉(zhuǎn)義”字符。
轉(zhuǎn)義字符主要用來(lái)表示那些用一般字符不便于表示的控制代碼。
常用的轉(zhuǎn)義字符及其含義 |
||
轉(zhuǎn)義字符 |
轉(zhuǎn)義字符的意義 |
ASCII代碼 |
n |
回車換行 |
10 |
t |
橫向跳到下一制表位置 |
9 |
b |
退格 |
8 |
r |
回車 |
13 |
f |
走紙換頁(yè) |
12 |
\ |
反斜線符"" |
92 |
' |
單引號(hào)符 |
39 |
” |
雙引號(hào)符 |
34 |
a |
鳴鈴 |
7 |
ddd |
1~3位八進(jìn)制數(shù)所代表的字符 |
|
xhh |
1~2位十六進(jìn)制數(shù)所代表的字符 |
2、字符類型說(shuō)明符
字符變量的類型說(shuō)明符是char。字符變量類型定義的格式和書(shū)寫(xiě)規(guī)則都與整型變量相同。例如:
char a,b;
3、字符變量在內(nèi)存中的存儲(chǔ)形式及使用方法
每個(gè)字符變量被分配一個(gè)字節(jié)的內(nèi)存空間,因此只能存放一個(gè)字符。字符值是以ASCII碼的形式存放在變量的內(nèi)存單元之中的。
如x的十進(jìn)制ASCII碼是120,y的十進(jìn)制ASCII碼是121。對(duì)字符變量a、b賦予'x'和'y'值:
a='x';
b='y';
實(shí)際上是在a、b兩個(gè)單元內(nèi)存放120和121的二進(jìn)制代碼:
例:向字符變量賦以整數(shù)。
#include<stdio.h> int main(void) { chara,b; a=120; b=121; printf("%c,%cn",a,b); printf("%d,%dn",a,b); return0; }
本程序中定義a,b為字符型,但在賦值語(yǔ)句中賦以整型值。從結(jié)果看,a,b值的輸出形式取決于printf函數(shù)格式串中的格式符,當(dāng)格式符為"c"時(shí),對(duì)應(yīng)輸出的變量值為字符,當(dāng)格式符為"d"時(shí),對(duì)應(yīng)輸出的變量值為整數(shù)。
由此可以看出:
(1)小寫(xiě)的ASCII碼比大寫(xiě)的ASCII碼大32
(2)后面的ASCII碼比前面的ASCII碼大
(3)'3'要變化成3需要‘3’-‘0’=3
4、字符串
字符串是由一對(duì)雙引號(hào)括起的字符序列。例如: "CHINA" ,“C program” , "$12.5" 等都是合法的字符串。
字符串和字符不同,它們之間主要有以下區(qū)別:
字符由單引號(hào)括起來(lái),字符串由雙引號(hào)括起來(lái)。
字符只能是單個(gè)字符,字符串則可以含一個(gè)或多個(gè)字符。
可以把一個(gè)字符型數(shù)據(jù)賦予一個(gè)字符變量,但不能把一個(gè)字符串賦予一個(gè)字符變量。
字符占一個(gè)字節(jié)的內(nèi)存空間。字符串占的內(nèi)存字節(jié)數(shù)等于字符串中字節(jié)數(shù)加1。增加的一個(gè)字節(jié)中存放字符"