19.5.5 ASCII码

字符类型char,代表一个字符,它的特点是用一对单引号引着。char类型的变量和某个整数是一一对应的关系,所以字符型变量可以直接转化成整数。例如下面的代码,c这个变量的值是小写字母a(注意不是变量a);b这个变量赋值错误,因为双引号是字符串变量不是字符变量;d变量错在不能把两个字符赋值给一个字符变量。
char c='a';
//这里会出错
char b="b";
char d='ab';
要理解字符变量,首先就要理解ASCII码。ASCII 是American Standard Code for Information Interchange(美国信息交换标准代码)的简称。码表就是一个整数和字符一一对应的表格,基本是西欧字符,还有escape、enter这些“看不见”的字符。每一个字符,都对应一个数字,例如字符a对应97(97是十进制,十六进制的话就是50),字符9对应57。如图所示:
单引号里面只能有一个字符。字符除了能看得见得字符,还有一些“看不见”的字符,例如转行字符,tab键等等。这里面我们要特别注意的是转行。转行字符是这样的:
char c='\n';
注意这里并没有违反字符变量只有一个字符的规则,“\”叫做转义字符,它必须和某些字母组合起来,用来表达一些特殊的字符,常用的如下表所示:
转义字符
意义
ASCII码值(十进制)
\a
响铃(BEL)
007
\b
退格(BS) ,将当前位置移到前一列
008
\f
换页(FF),将当前位置移到下页开头
012
\n
换行(LF) ,将当前位置移到下一行开头
010
\r
回车(CR) ,将当前位置移到本行开头
013
\t
水平制表(HT) (跳到下一个TAB位置)
009
\v
垂直制表(VT)
011
\\
代表一个反斜线字符''\'
092
\'
代表一个单引号(撇号)字符
039
\"
代表一个双引号字符
034
\?
代表一个问号
063
\0
空字符(NUL)
000