首页 百科知识 字符数据在内存中的存储形式及使用方法

字符数据在内存中的存储形式及使用方法

时间:2022-10-03 百科知识 版权反馈
【摘要】:每个字符变量都被分配1字节的内存空间,因此只能存放一个字符。字符值是以ASCII码的形式存放在变量的内存单元之中的。如x的十进制ASCII码是120,y的十进制ASCII码是121。对字符变量a,b赋予 ‘x’和 ‘y’值:所以也可以把它们看成是整型量。C语言允许字符变量参与数值运算,即用字符的ASCII码参与运算。由于大小写字母的ASCII码相差32,因此运算后把小写字母换成大写字母,然后分别以整型和字符型输出。

每个字符变量都被分配1字节的内存空间,因此只能存放一个字符。字符值是以ASCII码的形式存放在变量的内存单元之中的。

如x的十进制ASCII码是120,y的十进制ASCII码是121。对字符变量a,b赋予 ‘x’和 ‘y’值:

a=

b=

实际上,是在a,b两个单元内存放120和121的二进制代码:

a:

b:

所以也可以把它们看成是整型量。C语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值。在输出时,允许把字符变量按整型量输出,也允许把整型量按字符量输出。

整型量为2字节量,字符量为单字节量。当整型量按字符型量处理时,只有低八位字节参与处理。

【例3.11】向字符变量赋以整数。

已定义c为字符型变量,则下列语句中正确的是 ( )。

Ac=; Bc="97"; Cc=97; Dc="a";

本题答案为A。

【例3.12】向字符变量赋以整数。

main()

{ chara,b;

a=120;

b=121;

printf("%c,%c\n",a,b);

printf("%d,%d\n",a,b);

本程序中定义a,b为字符型,但在赋值语句中赋以整型值。从结果看,a,b值的输出形式取决于printf函数格式串中的格式符,当格式符为 “c”时,对应输出的变量值为字符,当格式符为 “d”时,对应输出的变量值为整数。

【例3.13】

main()

{chara,b;

a=

b=

a=a-32;

b=b-32;

printf("%c,%c\n%d,%d\n",a,b,a,b);

例3.13中,a,b被说明为字符变量并赋予字符值。

C语言允许字符变量参与数值运算,即用字符的ASCII码参与运算。由于大小写字母的ASCII码相差32,因此运算后把小写字母换成大写字母,然后分别以整型和字符型输出。

【例3.14】已知字母A的ASCII码为十进制的65,下面程序输出的是 ( )。

A.67,D B.B,C C.C,D D.不确定的值

main()

{charch1,ch2;

ch1=

ch2=

printf("%d,%c\n",ch1,ch2);

例3.14中,ch1为表达式赋值,结果为C,ch2为表达式赋值,结果为D,但是输出控制中ch1控制为整型输出,结果为67,因此输出答案为A。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈