深入理解 C++ 数据类型:基础类型、修饰符与最佳实践
C++ 数据类型完全指南
全面解析 C++ 核心数据类型:整数、浮点数、字符、布尔、void 及类型修饰符,附典型大小、取值范围与声明示例。
数据类型声明变量可存储的数据种类与大小。例如:
int age = 13;
age 为 int,可存 2 或 4 字节整数。确切大小由实现定义,但 int 至少 16 位。
C++ 基础数据类型
| 类型 | 含义 | 典型大小(字节) |
|---|---|---|
int | 整数 | 2 或 4 |
float | 单精度浮点 | 4 |
double | 双精度浮点 | 8 |
char | 字符 | 1 |
wchar_t | 宽字符 | 2 |
bool | 布尔 | 1 |
void | 无值 | 0 |
1. int 整型
- 声明整数值
- 典型 4 字节,范围 -2,147,483,648 ~ 2,147,483,647
- 示例:
int salary = 85000;
2. float 与 double
- 存储带小数的实数
float4 字节;double8 字节,精度约双倍- 示例:
float area = 64.74; double volume = 134.64534; - 支持科学计数法:
double distance = 45E12; // 45 × 10^12
3. char 字符型
- 单个 8 位字符
- 单引号括起:
'h' - 示例:
char test = 'h'; - 注意:内部存储整数码点(ASCII/扩展 ASCII)
4. wchar_t 宽字符
- 通常 2 字节,用于超出 8 位范围的 Unicode 字符
- 示例:
wchar_t test = L'ם'; // 希伯来字母 - 前缀
L表示宽字符串字面量 - C++11 引入
char16_t、char32_t提供固定宽度 Unicode 支持
5. bool 布尔型
- 仅
true或false - 控制流条件/循环核心
- 示例:
bool cond = false;
6. void 无类型
- 表示无值;用于函数返回类型、指针运算
- 不能声明
void变量
类型修饰符
四大修饰符细化基础类型:
signed(默认)unsigned(仅非负)short(缩短)long(延长)
可应用于 int、double、char。
修饰后类型速查表
| 类型 | 大小(字节) | 含义/范围 |
|---|---|---|
signed int | 4 | 标准整数(等同 int) |
unsigned int | 4 | 仅非负:0 ~ 4,294,967,295 |
short | 2 | 短整数:-32,768 ~ 32,767 |
unsigned short | 2 | 非负短整数:0 ~ 65,535 |
long | ≥4 | 长整数 |
unsigned long | 4 | 非负长整数 |
long long | 8 | 超长整数:-9×10¹⁸ ~ 9×10¹⁸ |
unsigned long long | 8 | 非负超长整数 |
long double | 12/16 | 扩展精度浮点 |
signed char | 1 | 有符号字符:-128 ~ 127 |
unsigned char | 1 | 无符号字符:0 ~ 255 |
示例
long b = 4523232;
long int c = 2345342;
long double d = 233434.56343;
short e = 3434233; // 超出范围,错误
unsigned int a = -5; // 编译错误:无符号不能赋负值
派生数据类型
由基础类型组合而成:数组、指针、函数指针、结构体、联合体、枚举。后续教程详细讲解。
现代 C++ 类型推导与固定宽度类型
auto(C++11):编译器从初始化表达式推导类型固定宽度类型:int32_t、uint64_t等,跨平台精确控制大小std::byte(C++17):表示原始字节,替代unsigned char用于内存操作
建议:跨平台/网络/序列化代码必须使用固定宽度类型,避免 int/long 大小不一致导致的移植 Bug。
C语言
- 五大数据中心模型详解:设计架构、适用场景与典型案例
- 2021年云计算八大核心模型全解析:服务模式与部署模式
- 8大常见数据泄露类型实战剖析:真实案例、影响深度与防御启示
- 精通C#变量与基础数据类型:完整指南
- 掌握 C# 预处理器指令:条件编译、诊断控制与代码组织实战
- 掌握 C++ 变量、字面量与常量:核心概念与实战指南
- 掌握 C++ 运算符:六大类型全解析与实战示例
- C 语言数据类型详解:int、float、char 等核心类型完全指南
- C++ 运算符全解析:类型、示例与示例程序
- C++ char 类型完全指南:声明、ASCII 码、输入输出与字符串转换
- 精通Python数据类型:实战指南
- Java 基本数据类型:8 大类型完整指南与示例