[C++] 基础知识之2、C++中的基本数据类型

来源:互联网 发布:centos双系统安装教程 编辑:程序博客网 时间:2024/06/08 18:17

C++中的基本数据类型

  虽然C++中的基本数据类型很常用,但是如果熟视无睹,往往在编程实践中容易出错。这里总结出来,希望能够让自己和别人加深印象。C++标准规定的是每个算数类型的最小存储空间,但其并不阻止编译器用更大的存储空间。下面是大多数编译器所采用的存储空间。

类型 位 范围 void 0 bool 1 [0,1] (signed) char 1 [27,271] unsigned char 1 [0,281] (signed) short 2 [215,2151] unsigned short 2 [0,2161] (signed) int sizeof(short) 与操作系统的字长有关 unsigned int sizeof(short) 与操作系统的字长有关 _int8 1 [27,271] _int16 2 [215,2151] _int32 4 [231,2311] _int64 8 [263,2631] (signed) long max(32,sizeof(int)) 与操作系统的字长有关 unsigned long max(32,sizeof(int)) 与操作系统的字长有关 (signed) long long 8 [263,2631] unsigned long long 8 [0,2641] float 4 ±3.4e+/38 (7位) double 8 ±1.7e+/308 (15位) long double 8 ±1.7e+/308 (15位) enum * 与操作系统的字长有关 wchar_t 2 [0,2161]

  通常情况下,指针P的大小同int的大小,也是和操作系统字长有关。关于数据类型需要注意的问题包括:

  1. bool和wchar_t是C++语言特有的。由于许多外文字符的数量超过了unsigned char的表示范围,所以C++定义了wchar_t来表示外文字符集。在有些编译器上,wchar_t的长度被定义为4个字节。
  2. 除上表之外,C/C++还可以自定义枚举enum,联合union和struct结构体类型,其中enum类型的数据所占用的字节数也由操作系统和编译平台决定,通常情况下和int相同。
  3. int和long类型数据的字节数和数值范围由操作系统和编译平台决定。比如在16位机上,sizeof(int) = 2,而32位机上的sizeof(int) = 4;32位机上的sizeof(long) = 4,而64位机上sizeof(long) = 8。除此之外,64位机上的pointer占8个字节。
  4. 如果考虑可移植性,建议尽量使用_int8, _int16, _int32和_int64等,这可以保证在不同操作系统和编译平台上开辟的空间大小一致。
0 0
原创粉丝点击