当前位置: 首页 > article >正文

【C++教程】C++中的基本数据类型

以下是 C++ 基本数据类型的定义、大小(常见实现)及其取值范围的总结表。需注意,具体大小可能因编译器和平台而异(如 32 位 vs 64 位系统),建议使用 sizeof()<climits><cfloat> 头文件中的宏获取具体值。


整数类型

类型大小(字节)取值范围(常见实现)标准最小要求
signed char1-128 到 127至少 8 位(-2⁷ 到 2⁷-1)
unsigned char10 到 255至少 8 位(0 到 2⁸-1)
short2-32,768 到 32,767至少 16 位(-2¹⁵ 到 2¹⁵-1)
unsigned short20 到 65,535至少 16 位(0 到 2¹⁶-1)
int4-2,147,483,648 到 2,147,483,647至少 16 位(通常为 32 位)
unsigned int40 到 4,294,967,295int 的无符号版本
long4 或 8-2³¹ 到 2³¹-1(4 字节)或更大至少 32 位
unsigned long4 或 80 到 2³²-1(4 字节)或更大long 的无符号版本
long long8-9,223,372,036,854,775,808 到 …至少 64 位(-2⁶³ 到 2⁶³-1)
unsigned long long80 到 18,446,744,073,709,551,6150 到 2⁶⁴-1

字符类型

类型大小(字节)说明
char1可能是 signed charunsigned char(由编译器决定)
wchar_t2 或 4宽字符,支持更大字符集(如 Unicode)

浮点类型

类型大小(字节)取值范围(IEEE 754 常见值)精度
float4±1.18e-38 到 ±3.4e386-7 位小数
double8±2.23e-308 到 ±1.79e30815-16 位小数
long double8, 12, 16范围 ≥ double,具体依赖实现通常 ≥ double

布尔类型

类型大小(字节)取值范围
bool1(通常)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),明确指定位数。


示例代码

#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;
}

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


http://www.kler.cn/a/574252.html

相关文章:

  • 【每日学点HarmonyOS Next知识】Web上传文件、监听上下左右区域连续点击、折叠悬停、字符串相关、播放沙盒视频
  • VsCode/Cursor workbench.desktop.main.js 的入口
  • VS2019,VCPKG - 为VS2019添加VCPKG
  • 【启发式算法】Dijkstra算法详细介绍(Python)
  • 高频 SQL 50 题(基础版)| 高级字符串函数 / 正则表达式 / 子句:1667. 修复表中的名字
  • Jenkins工具配置与运用指南:从零到持续交付
  • 网络安全 三高三弱治理
  • 【进程和线程】(面试高频考点)
  • HTML第四节
  • Android Studio快速配置国内镜像源和HTTP代理
  • python基础课程整理--元组的基础
  • 分类预测 | Matlab实现PSO-BP-Adaboost基于粒子群算法优化BP神经网络结合Adaboost思想的分类预测模型
  • 同一个网段的IP可以自由访问吗?不同网段的IP必须通过公网IP访问吗?
  • 【鸿蒙操作系统】- 1:实习阶段的一些总结
  • 【项目】视频点播
  • PTA 7-6 列出连通集
  • 在MWC2025,读懂华为如何以行践言
  • 考研初试需要准备多少时间用于复习备考?
  • Hadoop、Hive、Spark的关系
  • RecyclerView与ListView的优化