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

【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.mrgr.cn/news/93363.html

相关文章:

  • 前端图片加载错误原因分析
  • Ruoyi+uniapp+websocket点对点和广播通知消息
  • vue面试宝典之二
  • GEFFEN/GF-SPMS8分布式电源强电控制器
  • 文件操作(详细讲解)(2/2)
  • L1-041 寻找250
  • 【AI】【Unity】关于Unity接入DeepseekAPI遇到的坑
  • 键值对(C++实现)
  • OpenAI Deep Research
  • 010---基于Verilog HDL的分频器设计
  • YOLOv12改进之A2(区域注意力)
  • 洛谷 P1480 A/B Problem(高精度详解)c++
  • 【大模型篇】推理模型大作战(QwQ-32B vs DeepSeek-R1)
  • Gartner发布2025年网络安全六大预测
  • FusionInsight MRS云原生数据湖
  • ROS2 Rviz 实战:给 panda 机械臂场景塞个圆柱体
  • Redis数据结构-Zset有序集合
  • 【JAVA架构师成长之路】【持久层】第2集:SQL常用优化手段
  • 从零开始的 Kafka 学习(一)| 概念,Java API
  • 【JAVA架构师成长之路】【JDK源码】第5集:Map集合框架与泛型