详解数据类型
前言
我们在编程时可能需要存储各种各样类型的信息,操作系统会根据变量的数据类型来分配内存和决定在保留内存中存储什么。C++ 为我们提供了种类丰富的内置数据类型和派生数据类型以及用户自定义的数据类型。
一、基本的内置类型
下表列出了七种基本的 C++ 数据类型:
类型 | 关键字 |
---|---|
布尔型 | bool |
字符型 | char |
整型 | int |
浮点型 | float |
双浮点型 | double |
无类型 | void |
宽字符型 | wchar_t |
其中宽字符型 wchar_t 是这样来的:
typedef short int wchar_t;
所以 wchar_t 实际上的空间和 short int 是一样的。
一些基本类型可以使用一个或多个类型修饰符进行修饰:
signed//它是默认的,表示这个变量是有符号的,也就是可以存储整数和负数
unsigned//表示这个变量没有符号,它的值能存储数的大小而不能表示正负
short
long
signed存储符号是有代价的,代价是存储空间中的一个比特位专门用来存储符号,这一位不能表示数值。所以一般同类型的signed能够存储的数的绝对值大小要小于undigned。
下表展示了各种变量类型在内存中存储值时需要占用的内存,以及该类型的变量所能存储的最大值和最小值。
类型 | 位 | 范围 |
---|---|---|
char | 1 个字节 | -128 到 127 或者 0 到 255 |
unsigned char | 1 个字节 | 0 到 255 |
signed char | 1 个字节 | -128 到 127 |
int | 4 个字节 | -2147483648 到 2147483647 |
unsigned int | 4 个字节 | 0 到 4294967295 |
signed int | 4 个字节 | -2147483648 到 2147483647 |
short int | 2 个字节 | -32768 到 32767 |
unsigned short int | 2 个字节 | 0 到 65,535 |
signed short int | 2 个字节 | -32768 到 32767 |
l |