首页 > 代码库 > 第2章 变量和基本类型

第2章 变量和基本类型

  数据类型是程序的基础:它告诉我们数据的意义以及我们能在数据上执行的操作。

  C++语言支持广泛的数据类型,它定义了几种基本内置类型(如字符、整形、浮点型等),同时也为程序员提供了自定义数据类型的机制。基于此,C++标准库定义了一些更加复杂的数据类型,如可变长字符串和向量等。

  本章将主要讲述内置类型,并带领大家初步了解C++语言是如何支持更复杂数据类型。

 

2.1 基本内置类型  

  C++定义了一套包括算术类型(arithmetic type)和空类型(void)在内的基本数据类型。其中算术类型包含了字符、整型数、布尔值和浮点数。空类型不对应具体的值,仅用于一些特殊的场合,例如最常见的是,当函数不返回任何值时使用空类型作为返回类型。

  注:arithmetic  [.er?θ‘met?k] n.算术

2.1.1 算术类型

  算术类型分为两类:整型(intergral type,包括字符和布尔型在内)和浮点型

  算术类型的尺寸(所占的位数,bit位)在不同的机器上有所差别。下表列出了C++标准规定的尺寸的最小值,同时允许编译器赋予这些类型更大的尺寸。

  

类型 含义 最小尺寸
整形 bool 布尔类型 未定义
char 字符 8位
wchar_t 宽字符 16位
char16_t Unicode字符 16位
char32_t Unicode字符 32位
short 短整型 16位
int 整型 16位
long 长整型 32位
long long 长整型 64位
浮点型 float 单精度浮点型 6位有效数字
double 双精度浮点型 10位有效数字
long double 扩展精度浮点型 10位有效数字

  布尔类型(bool)的取值是真(true)或者假(false)。

  C++提供了几种字符类型,其中多数支持国际化。基本字符类型是char,一个char的空间应确保可以存放机器基本字符集中任意字符对应的数字值,换句话说,一个char的大小和一个机器字节一样。其他字符类型用于扩展字符集,如wchar_t、char16_t、char32_t。wchar_t类型用于确保可以存放机器最大扩展字符集中任意一个字符,类型char16_t和char32_t则为Unicode字符集服务(Unicode是用于表示所有自然语言中字符的标准)。

  C++语言规定,int >= short,long >= int,long long >= long。其中数据类型long long为C++11中新定义的。

  浮点型可以表示单精度、双精度和扩展精度值。C++标准指定了一个浮点数有效位数的最小值,然而大多数编译器都实现了更高的精度。通常,float以1个字(32bit)来表示,double以2个字(64bit)来表示,long double以3或者4个字(96或128bit)来表示。一般来说,类型float和double分别有7和16个有效位;类型long double则常常被用于有特殊浮点需求的硬件,它的具体实现不同,精度也各不相同。

第2章 变量和基本类型