【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 charunsigned 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(通常) truefalse

注意事项

  1. 平台依赖性

    • intlong 的大小可能因系统不同而变化(如 Windows 64 位中 long 为 4 字节,Linux 64 位中为 8 字节)。
    • 使用 sizeof(type) 直接获取当前平台的大小(如 sizeof(int))。
  2. 标准头文件

    • <climits> 包含整数类型的范围宏(如 INT_MAXLLONG_MIN)。
    • <cfloat> 包含浮点类型的范围宏(如 FLT_MAXDBL_EPSILON)。
  3. 固定宽度类型

    C++11 引入了 <cstdint> 中的固定大小类型(如 int32_tuint64_t),明确指定位数。


示例代码

cpp 复制代码
#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;
}

如果需要更精确的平台特定信息,请结合编译器和系统文档进行验证。

相关推荐
争不过朝夕,又念着往昔10 分钟前
即时通讯项目---网关服务
linux·c++·vscode
蓝风破云20 分钟前
C++实现常见的排序算法
数据结构·c++·算法·排序算法·visual studio
怀旧,1 小时前
【C++】 9. vector
java·c++·算法
Tony Bai1 小时前
泛型重塑 Go 错误检查:errors.As 的下一站 AsA?
开发语言·后端·golang
hixiong1231 小时前
C# 编写一个XmlToDota的转换工具
开发语言·人工智能·yolo·c#
hqxstudying1 小时前
JAVA限流方法
java·开发语言·安全·限流
小楓12013 小时前
MySQL數據庫開發教學(二) 核心概念、重要指令
开发语言·数据库·mysql
一枚小小程序员哈3 小时前
基于php的萌宠社区网站的设计与实现、基于php的宠物社区论坛的设计与实现
开发语言·php·宠物
这儿有一堆花3 小时前
C++标准库算法:从零基础到精通
c++
老赵的博客4 小时前
QT的项目pro qmake编译
开发语言·qt