【C++教程】C++中的基本数据类型
以下是 C++ 基本数据类型的定义、大小(常见实现)及其取值范围的总结表。需注意,具体大小可能因编译器和平台而异(如 32 位 vs 64 位系统),建议使用 sizeof()
或 <climits>
、<cfloat>
头文件中的宏获取具体值。
整数类型
类型 | 大小(字节) | 取值范围(常见实现) | 标准最小要求 |
---|---|---|---|
signed char | 1 | -128 到 127 | 至少 8 位(-2⁷ 到 2⁷-1) |
unsigned char | 1 | 0 到 255 | 至少 8 位(0 到 2⁸-1) |
short | 2 | -32,768 到 32,767 | 至少 16 位(-2¹⁵ 到 2¹⁵-1) |
unsigned short | 2 | 0 到 65,535 | 至少 16 位(0 到 2¹⁶-1) |
int | 4 | -2,147,483,648 到 2,147,483,647 | 至少 16 位(通常为 32 位) |
unsigned int | 4 | 0 到 4,294,967,295 | 同 int 的无符号版本 |
long | 4 或 8 | -2³¹ 到 2³¹-1(4 字节)或更大 | 至少 32 位 |
unsigned long | 4 或 8 | 0 到 2³²-1(4 字节)或更大 | 同 long 的无符号版本 |
long long | 8 | -9,223,372,036,854,775,808 到 … | 至少 64 位(-2⁶³ 到 2⁶³-1) |
unsigned long long | 8 | 0 到 18,446,744,073,709,551,615 | 0 到 2⁶⁴-1 |
字符类型
类型 | 大小(字节) | 说明 |
---|---|---|
char | 1 | 可能是 signed char 或 unsigned char (由编译器决定) |
wchar_t | 2 或 4 | 宽字符,支持更大字符集(如 Unicode) |
浮点类型
类型 | 大小(字节) | 取值范围(IEEE 754 常见值) | 精度 |
---|---|---|---|
float | 4 | ±1.18e-38 到 ±3.4e38 | 6-7 位小数 |
double | 8 | ±2.23e-308 到 ±1.79e308 | 15-16 位小数 |
long double | 8, 12, 16 | 范围 ≥ double ,具体依赖实现 | 通常 ≥ double |
布尔类型
类型 | 大小(字节) | 取值范围 |
---|---|---|
bool | 1(通常) | true 或 false |
注意事项
-
平台依赖性:
int
和long
的大小可能因系统不同而变化(如 Windows 64 位中long
为 4 字节,Linux 64 位中为 8 字节)。- 使用
sizeof(type)
直接获取当前平台的大小(如sizeof(int)
)。
-
标准头文件:
<climits>
包含整数类型的范围宏(如INT_MAX
、LLONG_MIN
)。<cfloat>
包含浮点类型的范围宏(如FLT_MAX
、DBL_EPSILON
)。
-
固定宽度类型:
C++11 引入了<cstdint>
中的固定大小类型(如int32_t
、uint64_t
),明确指定位数。
示例代码
#include <iostream>
#include <climits>
#include <cfloat>int main() {std::cout << "int 大小: " << sizeof(int) << " 字节" << std::endl;std::cout << "int 最大值: " << INT_MAX << std::endl;std::cout << "double 最小值: " << DBL_MIN << std::endl;return 0;
}
如果需要更精确的平台特定信息,请结合编译器和系统文档进行验证。