4.6.3 字符变量
在C语言中,字符变量用来存储字符常量,即单个字符。字符变量的类型说明符是char。定义字符变量类型的格式和书写规则都与整型变量的相同,具体格式如下。
char变量;
下面的代码定义了两个字符变量a和b。
char a, b;
因为每个字符变量都分配了一个字节的内存空间,所以只能存储一个字符。字符值是以ASCII码的形式存放在内存单元之中的,例如x的十进制ASCII码是120,y的十进制ASCII码是121。下面的代码是对字符变量a与b赋值’x’和’y'。
a='x'; b='y';
将一个字符常量放到一个字符变量中,并不是把字符本身放到内存单元中,而是将此字符相应的ASCII代码放到存储单元中。例如下面的代码。
char a, b; ch1='x'; ch2='y';
在上述代码中,字符x的ASCII码为120,字符y的ASCII码为121,将两个字符赋值给字符变量ch1和ch2后。实际上是在ch1和ch2这两个单元内存中存储了120和121的二进制代码。
ch1=01111000; ch2=01111001;
可以把a和b可以视为整型变量。即一个字符既可以以字符形式输出,也可以以整数形式输出。当以字符形式输出时,需要预先将存储单元中的ASCII码转换为相应的字符,然后再输出;当以整数形式输出时,直接将ASCII码作为整数来输出。
从以上描述可以看出,字符型数据和整型数据之间的转换十分简单和方便。它们之间可以相互赋值,并且可以直接进行运算。在输出时,字符型数据和整型数据是完全通用的,它们既可以以整数形式输出,也可以以字符形式输出。但是字符型数据只占1字节,只能存放0~255内的整数。整型变量为双字节变量,字符变量为单字节变量,当整型变量按字符型变量处理时,只有低8位字节参与处理。
实例4-6
将字符变量和整型变量相互赋值,并输出运算结果
源码路径daima\4\4-6
本实例的实现文件为“copy.c”,具体代码如下。
#include <stdio.h> int main(void){ int num1; //声明一个整型变量 char num2; //声明一个字符型变量 num1='a'; //将字符数据赋值给整型变量 num2=98; //将整型数据赋值给字符型变量 num1=num1-32; num2=num2-32; //字符数据与整型数据进行算术运算 printf("%c, %c\n", num1, num2); //以字符形式输出 printf("%d, %d\n", num1, num2); //以整数形式输出 }
拓展范例及视频二维码
范例4-6-01:字符变量的定义与使用
源码路径:演练范例\4-6-01\
范例4-6-02:获取浮点数的整数和小数
源码路径:演练范例\4-6-02\
运行上述程序后输出的运算结果,如图4-7所示。
图4-7 执行效果
注意:当输出char变量时,如果是%c则输出字符本身,如果是%d则输出这个字符所对应的ASCII码的十进制值。在实例4-6中输入字符d时会输出100。