6.2 字符變量
字符變量用來存放一個(gè)字符常量,字符變量用char來定義。如:
char a,b;
a=′0′;b=′k′;
printf(″%c %c \n″,a,b);
將輸出兩個(gè)字符ok。
不能將一個(gè)字符串常量賦給一個(gè)字符變量,如:
a=″0″;b=″k″;
是錯(cuò)誤的。
給字符變量賦值可以采用如下三種方法:
(1)直接賦以字符常量,如char=′A′;
(2)賦以″轉(zhuǎn)義字符″,如:
char c=′\\′;
printf(″%c″,c);
輸出一個(gè)字符″\″。
(3)賦以一個(gè)字符的ASCII代碼,如字符′a′的ASCII代碼為97,則
char c=97;
printf(″%c″,c);
將輸出一個(gè)字符″a″。實(shí)際上,字符數(shù)據(jù)在內(nèi)存中是以整數(shù)形式(字符ASCII代碼)存放的,例如,字符′a′的ASCII碼為97,在內(nèi)存字節(jié)中的存放形式為:
01 10 00 01
在輸出時(shí),如果指定輸出字符的格式符″%c″輸出,則輸出字符′a′(在輸出時(shí)先將ASCII碼轉(zhuǎn)換為字符)。如果指定按輸出整數(shù)的格式″%d″輸出(如printf(″%d″,c)),則輸出一個(gè)整數(shù)97。
應(yīng)記住,字符數(shù)據(jù)與整型數(shù)據(jù)二者間是通用的,可以互相賦值和運(yùn)算,如:
int a=′A′;
char c=97;
print(″%d\n″,c-a);
將輸出一個(gè)整數(shù)32,因?yàn)椤銩′的ASCII碼為65。