3.4.4 字符型变量
在信息的表示和传递中,经常用到字符以及文字的表示。字符型变量就是用来存放单个字符的变量类型。字符型变量的定义格式是“类型说明符变量标识符,变量标识符……”。示例如下。
char a://定义a为有符号字符变量
unsigned char b;//定义b为无符号字符变量
在C51中,可以定义两种类型的字符型变量为有符号字符变量char和无符号字符变量unsigned char。在C51中,字符型变量在操作时将按整型变量处理。字符是以ASCII码方式表示的,其字长为1个字节,所以有符号字符型变量的取值范围为-128~127,无符号字符型变量的取值范围是0~255。如果某个变量被定义成char,则表明该变量是有符号的,即它将转换成有符号的整型变量。字符型变量使用的示例程序如下。
01:#include<stdio.h>//头文件
02:
03:void main()//主函数
04:{
05:char c1,c2,c3,c4;//定义字符变量
06:c1=65;//赋值
07:c2=66;//赋值
08:c3=‘A’;
09:c4=‘B’;
10:printf(“c1=%c\nc2=%c\nc3=%c\nc4=%c”,c1,c2,c3,c4);//输出结果
11:}
该程序可在KeilµVision3集成开发环境中运行,执行结果如下。
c1=A
c2=B
c3=A
c4=B
注意如上例代码中的第8行和第9行所示,将字符号向字符变量赋值时,字符必须以半角状态的单引号括起来,不能用双引号。
程序中,c1、c2、c3、c4被定义为字符变量。其中,c3和c4分别赋值两个字符,因此输出结果为字符。c1和c2分别赋值十进制整数65和66,因为字符A和B的ASCII码值分别为65和66,因此程序中使用“%c”来表示输出时将输出其对应的字符。对c1和c2的赋值相当于以下的赋值语句。
c1=‘A’;
c2=‘B’;
在实际使用中,常会需要存放一个字符串,这时就需要定义一个字符型数组,将字符串存放到该数组中来表示。定义字符串数组的示例程序如下。
include<stdio.h>//头文件
void main()//主函数
{
char str[5];//定义字符型数组
str[0]=‘T’;//赋值
str[1]=‘e’;//赋值
str[2]=‘s’;//赋值
str[3]=‘t’;//赋值
printf(“str=%s”,str);//打印输出结果
}
在程序编译时,系统将留出str[0]到str[4]共5个字符的连续空间,其中只有前4个可以自由赋值,最后一个用来存放字符串终止符“NULL”,即“\0”。
这段程序可在KeilµVision3集成开发环境中运行,执行结果如下。
str=Test
注意终止符“NULL”是编译程序默认自动加上的,程序中绝对不能为最后一个赋值。如果对最后一个进行赋值,将导致程序的错误输出。