C语言从入门到精通(第6版)
上QQ阅读APP看书,第一时间看更新

3.5.3 字符型变量

字符型变量是用来存储字符常量的变量。将一个字符常量存储到一个字符变量中,实际上是将该字符的ASCII码值(无符号整数)存储到内存单元中。

字符型变量在内存空间中占一个字节,取值范围是−128~127。定义一个字符型变量需要使用关键字char。例如,要定义一个字符型变量cChar,为其赋值'a'的方法如下:

    char cChar;  /*定义字符型变量cChar */
    cChar= 'a';  /*为变量赋值'a' */
说明

字符型变量在内存中存储的是字符的ASCII码,即一个无符号整数,其形式与整数的存储形式一样,因此C语言允许字符型数据与整型数据之间互相转换。

【例3.8】字符型和整型间的互换(实例位置:资源包\TM\sl\03\08)

本实例为定义的字符型变量和整型变量进行不同的赋值,然后通过输出结果观察整型变量和字符型变量之间的转换。

    #include<stdio.h>
    int main()
    {
         char cChar1;            /*定义字符型变量cChar1*/
         char cChar2;            /*定义字符型变量cChar2*/
         int iInt1;              /*定义整型变量iInt1*/
         int iInt2;              /*定义整型变量iInt2*/
 
         cChar1='a';             /*为变量赋值*/
         cChar2=97;
         iInt1='a';
         iInt2=97;
 
         printf("%c\n",cChar1);  /*显示结果为a*/
         printf("%d\n",cChar2);  /*显示结果为97*/
         printf("%c\n",iInt1);   /*显示结果为a*/
         printf("%d\n",iInt2);   /*显示结果为97*/
         return 0;               /*程序结束*/
    }

上述代码首先定义了4个变量,两个字符型,两个整型,然后分别赋值为'a'和97。因为字符'a'在ASCII码中的值正好是97,因此两者可以互相转换输出。运行程序,显示效果如图3.12所示。

下面对目前学过的所有数据类型进行一下概括总结,如表3.5所示。

图3.12 使用字符型变量

表3.5 数值型和字符型数据的字节数和数值范围

编程训练(答案位置:资源包\TM\sl\03\编程训练\)

训练3:记录大毛的基本信息 使用整型变量保存大毛的年龄,使用字符型变量保存大毛的性别(W表示女,M表示男),用实型变量保存大毛的身高、体重,最后用printf函数输出。结果如下:

    大毛基本信息如下:
    年龄是:31岁,性别是:M
    身高是:1.680000米,体重是:59.400000千兊

训练4:预测快递到货时长 假设某商品从广州市发货,预测其到达北京、上海、浙江、江苏、山东、湖南、辽宁、吉林、黑龙江等地的时长,使用整型变量存储预测的时长(即天数),用printf函数输出预测结果。输出结果如下:

    快递预测时间:
    从广州到湖南省、浙江省是2天
    从广州到上海、北京、江苏省、山东省是3天
    从广州到辽宁省、吉林省、黑龙江省是4天