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