C++面向对象程序设计
上QQ阅读APP看书,第一时间看更新

2.2.1 基本数据类型

C++的基本数据类型如表2-1所示(表中各类型的长度和取值范围,以面向IA-32处理器的VC++2008和gcc 4.2为准)。

表2-1 C++的基本数据类型

从表2-1中可以看到,C++的基本数据类型有bool(布尔型)、char(字符型)、int(整型)、float(浮点型,表示实数)、double(双精度浮点型,简称双精度型)。除了bool型外,主要有两大类:整数和浮点数。因为char型从本质上说也是整数类型,它是长度为1字节的整数,通常用来存放字符的ASCII码。其中关键字signed和unsigned,以及关键字short和long被称为修饰符。

用short修饰int时,short int表示短整型,占2字节。此时int可以省略,因此表2-1中列出的是short型而不是short int型。long可以用来修饰int和double。用long修饰int时,long int表示长整型,占4字节,同样此时int也可以省略。

一般情况下,如果对一个整数所占字节数和取值范围没有特殊要求,使用(unsigned)int型为宜,因为它通常具有最高的处理效率。

signed和unsigned可以用来修饰char型和int型(也包括short和long),signed表示有符号数,unsigned表示无符号数。有符号整数在计算机内是以二进制补码形式存储的,其最高位为符号位,“0”表示“正”,“1”表示“负”。无符号整数只能是正数,在计算机内是以绝对值形式存放的。int型(也包括short和long)在默认(不加修饰)情况下是有符号(signed)的。

两种浮点类型除了取值范围有所不同外,精度也有所不同,float可以保存7位有效数字,double可以保存15位有效数字。

bool(布尔型,也称逻辑型)数据的取值只能是false(假)或true(真)。bool型数据所占的字节数在不同的编译系统中有可能不一样。程序所处理的数据不仅分为不同的类型,而且每种类型的数据还有常量与变量之分。接下来,将详细介绍各种基本类型的数据。