《C++语言入门经典》一2.2 数据类型

    xiaoxiao2021-08-18  208

    2.2 数据类型

    C++语言中常用的数据类型有数值类型、字符类型、数组类型、布尔类型、枚举类型、结构体类型、共用体类型、指针类型、引用类型和自定义类型。本节将详细介绍这些数据类型。

    2.2.1 数值类型

    在C++语言中,数值类型主要分为整型和实型(浮点类型)两类。其中,整型按符号划分可以分为有符号型和无符号型两类;按长度划分可以分为普通整型、短整型和长整型三类,整型的分类如表2.2所示。

    在程序中使用实型数据时需要注意以下两点。(1)实数的相加实型数据的有效数字是有限制的,如单精度float的有效数字是6~7位,如果将数字86 041 238.78 赋值给float类型,显示的数字可能是86 041 240.00,个位数8被四舍五入,小数位被忽略。如果将86 041 238.78与5相加,输出的结果为86 041 245.00,而不是86 041 243.78。(2)实数与零的比较在开发程序的过程中,经常会进行两个实数的比较,此时尽量不要使用“==”或“!=” 运算符,而应使用“>=”或“<=”之类的运算符,否则可能产生未知的错误。例如:

    float fvar = 0.00001; if (fvar == 0.0) …

    上述代码并不是高质量的代码,如果程序要求的精度非常高,就可能产生未知的结果。通常,在比较实数时需要定义实数的精度。【例2.1】 利用实数精度进行实数比较。实例位置:光盘MR源码第2章2.1

    #include "stdafx.h" void main() {  float eps = 0.0000001; // 定义0的精度  float fvar = 0.00001;  if (fvar >= -eps && fvar <= eps)    printf("等于零!\n",fvar);  else    printf("不等于零!\n",10); }

    程序运行结果如图2.1所示。

    2.2.2 字符类型

    在C++语言中,字符数据使用“' '”表示,如'A'、'B'、'C'等。定义字符变量时可以使用char关键字。例如:

    char c= 'a'; char ch = 'b';

    在计算机中,字符是以ASCII码的形式存储的,因此可以直接将整数赋值给字符变量。例如:

    char ch = 97; printf("%c\n",ch);

    输出结果为a,因为97对应的ASCII码为a。

    2.2.3 布尔类型

    在逻辑判断中,结果只有真和假两个值。C++ 语言中提供了布尔类型bool 来描述真和假。bool类型共有两个取值,分别为true和false,true表示真,false表示假。在程序中,bool类型被作为整数类型对待,false表示0,true表示1。将bool类型赋值给整型是合法的,同样,将整型赋值给bool类型也是合法的。例如:

    bool ret; int var = 3; ret = var; // ret=true var = ret; // var=1

    说明引用类型数据与指针类型数据将在第5章进行讲解,自定义类型数据(即类和结构体)则会在第7、8、10章进行讲解。

    相关资源:C语言入门经典(第4版)--源代码及课后练习答案

    最新回复(0)