数据类型说明 字符型

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' 因此它只能容纳一个字符的变量。

原文地址:https://www.cnblogs.com/qkhhxkj/p/2089112.html