admin 管理员组

文章数量: 1086019


2024年3月29日发(作者:打官司千万不要找法律工作者)

c语言(char)码

c语言程序设计 课程是高等院校计算机专业基础课程之一,其教学效果直接影响学生

在计算机方面的应用。下面来个大家介绍c语言char的用法。

1.字符型(char)简介

字符型(char)用作储存字符(character),例如英文字母或标点。严格来说,char 其

实也就是整数类型(integer type),因为 char 类型储存的实际上就是整数,而不是字符。

计算机采用特定的整数编码去则表示特定的字符。美国广泛采用的编码就是

ascii(american standard code for information interchange 美国信息互换标准编码)。

比如:ascii 采用 65 去代表大写字母 a,因此存储字母 a 实际上存储的就是整数65。

特别注意:许多ibm大型机采用另一种编码——ebcdic(extended binary-coded decimal

interchange code 扩展的二进制编码的十进制互换码);相同国家的计算机采用的编码可

能将全然相同。

ascii 的范围是 0 到 ,故而 7 位(bit)就足以表示全部 ascii。char 一般占用 8

位内存单元,表示ascii绰绰有余。许多系统都提供扩展ascii(extended ascii),并且

所需空间仍然在 8 位以内。注意,不同的系统提供的扩展 ascii 的编码方式可能有所不

同!

许多字符集远远超过了 8 位所能够则表示的范围(比如汉字字符集),采用这种字符

集做为基本字符集的系统中,char 可能将就是 16 位的,甚至可能将就是 32 位的。总

之,c 确保 char 占用空间的大小不足以储存系统所用的基本字符集的编码。c 语言定义

一个字节(byte)的位数为 char 的位数,所以一个字节可能将就是 16 位,也可能将就是

32 位,而不仅仅局限于 8 位。

2. 声明字符型变量

字符型变量的声明方式和其它类型变量的声明方式一样:

char good;

char better, best;

以上代码声明了三个字符型变量:good、better,和 best。

3. 字符常量与初始化

我们可以使用以下语句来初始化字符型变量:

char ch = 'a';

这个语句把 ch 的值初始化为 a 的编码值。在这个语句中,'a' 是字符常量。c 语

言中,使用单引号把字符引起来就构成字符常量。我们来看另外一个例子:

char fail; /* 声明一个字符型变量 */

fail = 'f'; /* 正确 */

fail = "f"; /* 弄错!"f" 就是字符串字面量 */

把字符用双引号引起来构成字符串字面量,所以第三个语句是错误的。我们会在后续

的教程中讨论字符串,现在暂且把它放下。

因为字符实质上就是以数字的形式存储的,所以我们可以轻易采用数字去初始化字符

变量,或者给字符变量赋值:

char ch = 65; /* 不好的风格 */

在 ascii 中,a 的编码就是 65,所以对于采用 ascii 的系统来说,这个语句等同

于 char ch = 'a';。采用非 ascii 的系统中,65 代表的不一定就是 a,而有可能就是

其它任何字符,所以采用数字去初始化字符变量,或者给字符变量赋值就是一种不好的风

格,因为移植性太差了!但是,采用字符常量(比如 'a')去初始化字符变量,或者给字符

变量赋值,字符变量获得的一定就是我们所期盼的字符的编码值。比如:

char ch = 'a';

无论在采用任何编码的系统中,ch 都能获得字符 a 所对应的编码值。这是因为编译

器可以自动把 'a' 转化成 a 所对应的编码值。因此,我们必须采用字符常量去初始化字

符变量,或者给字符变量赋值;而不要用数字。

有趣的是,c 使用 int 类型来处理字符常量,而不是 char 类型。例如,在使用32

位 int 的ascii 系统中,以下代码

char ch = 'c';

'c' 的编码值 67 被存储于 32 位的内存单元中;不过 ch 仍然存储于 8 位的内存单

元中,只是它的值变成了 67。因此,我们可以定义形如 'good' 的古怪字符常量。因为

每个字符的编码值占用 8 位的内存单元,所以这个常量刚好可以存储于 32 位的内存单

元。然而,用这种字符常量初始化字符变量,或者给字符变量赋值的话,导致的结果是,

字符变量只能得到字符常量的最后 8 位。也就是说,以下代码

char ch = 'good';

ch 得到的是 'd' 的值。

以后,在没特定表明的情况下,我们探讨的都就是 ascii。


本文标签: 字符 变量 编码 采用 系统