在 C++ 编程中,选择合适的数据类型是高效存储数据、避免内存浪费和确保计算准确性的基础。下表整理了 C++ 中最常用的基础数据类型,包含类型名称、关键字、典型存储大小、取值范围及常见用途,帮助初学者快速查阅和理解。
说明:表格中 “存储大小” 基于主流 64 位操作系统(x86_64 架构),不同编译器(如 GCC、Clang、MSVC)或架构(如 32 位 x86)可能存在细微差异,以实际编译环境为准。
|
类型分类 |
数据类型名称 |
关键字 |
典型存储大小(字节) |
取值范围 |
典型用途举例 |
|
整数类型 |
短整型 |
short |
2 |
-32,768 ~ 32,767 |
存储较小范围的整数(如年龄、数量较少的计数,节省内存) |
|
|
整型 |
int |
4 |
-2,147,483,648 ~ 2,147,483,647 |
存储常规整数(如分数、人数、ID 号,最常用的整数类型) |
|
|
长整型 |
long |
8(64 位系统)/4(32 位) |
-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807(64 位) |
存储较大范围的整数(如时间戳、大数量计数,避免溢出) |
|
|
无符号短整型 |
unsigned short |
2 |
0 ~ 65,535 |
存储非负的小范围整数(如商品数量、像素坐标,无负数场景) |
|
|
无符号整型 |
unsigned int |
4 |
0 ~ 4,294,967,295 |
存储非负的常规整数(如 ID 号、计数器,确保值不小于 0) |
|
|
无符号长整型 |
unsigned long |
8(64 位系统)/4(32 位) |
0 ~ 18,446,744,073,709,551,615(64 位) |
存储非负的大范围整数(如文件大小、内存地址,无负数且需大取值范围) |
|
浮点类型 |
单精度浮点型 |
float |
4 |
±3.4×10^-38 ~ ±3.4×10^38(约 6-7 位有效数字) |
存储精度要求不高的小数(如身高、体重,节省内存,需加后缀f,如3.14f) |
|
|
双精度浮点型 |
double |
8 |
±1.7×10^-308 ~ ±1.7×10^308(约 15-17 位有效数字) |
存储高精度小数(如圆周率、科学计算、金融数据,默认小数类型,无需后缀) |
|
字符类型 |
字符型 |
char |
1 |
-128 ~ 127(有符号)/ 0 ~ 255(无符号,取决于编译器) |
存储单个字符(如 'A'、'5'、'+',用单引号包裹)、ASCII 码值 |
|
|
无符号字符型 |
unsigned char |
1 |
0 ~ 255 |
存储无符号字符(如字节数据、图像像素值,避免负数解析问题) |
|
布尔类型 |
布尔型 |
bool |
1(或 1 字节以上,取决于编译器) |
false(0)或 true(非 0,通常存储为 1) |
存储逻辑值(如判断条件结果:“是否登录成功”“是否满足条件”) |
|
字符串类型 |
标准字符串(非基础类型,需头文件) |
string |
动态(取决于字符串长度) |
任意字符序列(如 “Hello”“C++”) |
存储文本内容(如用户名、消息内容,需包含头文件<string>,比字符数组更易用) |
关键注意事项
- 取值范围与溢出:整数类型超过取值范围会导致 “溢出”(结果错误且无提示),如int最大值2147483647加 1 后会变成-2147483648,需根据数据范围选择类型(如大数值用long)。
- 浮点类型精度:float精度较低,不适合金融计算(如货币),需用double或专门的高精度库(如decimal);浮点型不能精确表示所有小数(如0.1存储为近似值),避免直接用==比较。
- char的符号性:默认char是否有符号取决于编译器(GCC 默认有符号,MSVC 默认无符号),存储字节数据时建议显式用unsigned char,避免负数问题。
- string的使用:string是 C++ 标准库类型(非基础内置类型),必须包含头文件<string>才能使用,且需注意与 C 语言字符数组(char[])的区别。
13万+

被折叠的 条评论
为什么被折叠?



