
2.2 基本数据类型
C++提供了丰富的数据类型,如图2.1所示。C++中的数据类型可分为两大类,一类是基本类型,由系统提供,用户可直接使用,如整型(int)、实型(float、double)、字符型(char)等;另一类是构造类型,是在基本类型的基础上,由系统或用户自行定义的,如数组、结构体(struct)、类(class)等。本节只对基本数据类型进行讨论。
不同类型的数据所占用的内存空间(字节数)和表示的数据范围都是不同的,如表2-1所示。

图2.1 C++数据类型
表2-1 C++基本数据类型描述

续表

C++中的数据遵循“先定义后使用”的原则,即要对程序中使用的数据声明其数据类型,数据类型的作用有两个:
(1)它指出了该类型数据在内存中如何存储,即占用多大的存储空间,同时也确定了该类型数据的取值范围。
(2)它指出了该类型数据所能进行的运算。
在实际编程中,可根据所处理数据的特性确定其类型,如人数、年、月、日、年龄等都不可能有小数,所以确定为整型;而成绩、工资、销售额等都要精确到小数,所以可定义为实型。
说明:
(1)整型用于描述整数,整型又包括基本整型(int)、短整型(short int或short)和长整型(long int或long)三种整型,每种整型又分为有符号型(signed)和无符号型(unsigned)。它们所占内存字节数没有具体规定,只要求long型数据长度不短于int型,short型不长于int型。基本整型占用的字节数与机器型号和编译器有关,在Visual C++6.0中基本整型占用4个字节。
由于在实际应用中,有些数据常常是正数(如学号、年龄等),因此可将其定义为“无符号(unsigned)”类型。在以上三种整型前加上unsigned关键字,即指定该类型为无符号类型。如果加上关键字signed,则指定为有符号数。若既不加signed,也不加unsigned,则默认为有符号型(signed)。
(2)字符型(char)用来处理字符数据,存储的是该字符的ASCII码,占用1个字节。
(3)实型即浮点类型,是用于描述实数的。C++支持三种浮点类型:单精度(float)、双精度(double)和长双精度(long double)。double型数据占用的空间通常是float型的2倍,能容纳的浮点数的范围更大,精度也更高。
(4)布尔型(bool)用于描述逻辑量,其取值只有true(逻辑真)和false(逻辑假)两个值。在VisualC++6.0中布尔型数据在内存中占用1个字节。在C++内部用1表示true,用0表示false。