目录
一、引言
在 C++ 编程中,数据类型是构建程序的基石。它不仅决定了数据在内存中的存储方式和占用空间,还定义了数据可参与的操作。本文将系统梳理 C++ 的各类数据类型,结合实例讲解其特性与使用场景,帮助开发者深入理解数据在程序中的流转逻辑。
二、基础数据类型:内置的 “原子级” 数据单元
基础数据类型是 C++ 内置的、不可再分割的数据类型,直接对应计算机底层的存储单元。
2.1 整型:存储整数的 “容器”
数据类型 | 关键字 | 典型大小(32/64 位系统) | 取值范围 | 应用场景 |
---|---|---|---|---|
短整型 | short | 2 字节 | -32768 ~ 32767 | 小范围整数计数 |
整型 | int | 4 字节 | -2147483648 ~ 2147483647 | 常规整数运算 |
长整型 | long | 4/8 字节 | 依赖平台(通常≥int) | 跨平台兼容的大整数 |
长整型 | long long | 8 字节 | -9223372036854775808 ~ 9223372036854775807 | 超大整数存储(如时间戳) |
无符号整型 | unsigned int | 4 字节 | 0 ~ 4294967295 | 非负计数、位运算 |
2.2 浮点型:处理小数的 “精密仪器”
-
单精度浮点型(float):4 字节,精度约 6-7 位有效数字,适用于图形渲染、科学计算中的近似值。
-
双精度浮点型(double):8 字节,精度约 15-17 位有效数字,常用于金融计算、工程测量等高精度场景。
-
长双精度型(long double):8/16 字节(依平台而定),提供更高精度,但需谨慎使用以避免内存浪费。
⚠️ 浮点型存在精度误差,避免直接比较两个浮点数是否相等,建议用差值小于极小值(如 1e-8)判断。
2.3 字符型:文本世界的 “最小单元”
- char:1 字节,通常用于存储 ASCII 字符(-128~127 或 0~255,取决于是否为有符号)。
- wchar_t:宽字符类型,2/4 字节,用于存储 Unicode 字符(如中文、日文)。
- char16_t/char32_t:C++11 新增,分别占 2/