C编程从入门到实践
上QQ阅读APP看书,第一时间看更新

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。