数据类型说明 字符型
1 字符常量
C的字符常量是用单引号括在一起的字符
如:'a', 'x'
除了以上形式的字符常量外,C还允许用一种特殊的形式的字符常量,就是以一个'\'开头的字符序列,如在printf里用到的'\n'它代表一个换行,这是一种控制字符,在屏幕上是不能显示的,在程序中也无法用一个一般形式的字符表示,只能采用特殊的形式来表示
字符形式 含义 ASCII代码
\n 换行 10
\t 水平制表跳到下个tab位置 9
\b 退格将当前位置移到前一列 8
\r 回车,将当前位置移动到本行开头 13
\f 换面将当前位置移到下页开关 12
\\ 反斜杠字符 92
\' 单引号字符 39
\" 双引号字符 34
\ddd 8进制数所代表的字符
\xhh 16进制数所代表的字符
如:\101
代表8进制数,转成十进制为65,这样就代表字符 'A'
2 字符变量
字符型变量用来存放字符常量,注意只能放一个字符,不要以为可以在一个字符变量中可以放一个字符串。
定义如下:
char c1, c2;
表示c1, c2为字符型变量,各可以放一个字符,赋值如下
c1 = 'a'; c2 = 'b';
3 字符数据在内存中的存储形式及其使用方法
将一个字符常量放到一个字符变量中,实际上并不是把该字符本身放到内存单元中,而是将该字符的相应的ASCII代码放到存储单元中,如'a'的ASCII代码为97,在内存单元变量c1的值就是97。
既然在内存中,字符数据以ASCII码存储,它的存储形式就与整数的存储形式类似,C语言使字符型数据和整型数据之间可以通用,一个字符数据可以以字符形式输出,也可以以整数形式输出,以字符形式输出时,需要先将存储单元中的ASCII转换成相应字符,然后输出,以整数形式输出时,直接将ASCII码做为整数输出,也可以以字符数据进行算术运行,此时相当于对它们的ASCII码进行算术。
4 字符串常量
字符常量是由一对单引号括起来的单个字符,C语言除了允许使用字符常量外,还允许使用字符串常量,字符串常量是一对双引号括起来的字符序列。
如:"how do you do", "CHINA"
不要将字符常量与字符串常量混淆,'a'是字符常量"a"是字符串常量,二者不同如:
char c;
c = 'a';
是正确的但
c = "a";
是不正确的
说明:
C规定,在每一个字符串的结尾加一个字符串结束标志,以便系统据此判断字符串是否结束,C规定以字符'\0' 作为字符串结束标志,'\0' 是一个ASCII码为0的字符,从ASCII代码表中可以看到ASCII码为0的字符是空字符,即它不引起任何控制动作,也不是一个可以显示的字符,如果有一个字符串 "CHINA",实际上在内在中是
C H I N A \0
它的长度不是5个字符,而是6个字符,最后一个字符为 '\0' 但在输出时不输出 '\0' 例如在 printf("how do you do");中,输出时一个一个字符输出,直到遇到最后一个 '\0' 字符,就知道字符串结束,停止输出,注意,在写字符串是不必加 '\0' 否则会画蛇添足, '\0' 字符是系统自动加上的。现在来看 "a" 实际包含2个字符, 'a' '\0' 因此它只能容纳一个字符的变量。