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

C++ 数据类型

C++ 基本数据类型

C++ 提供了多种内置数据类型,用于存储不同种类的数据。这些数据类型可以分为以下几类:

整型

  • int:用于存储整数,通常占用 4 字节。
  • short:短整型,通常占用 2 字节。
  • long:长整型,通常占用 4 或 8 字节。
  • long long:更长的整型,通常占用 8 字节。

浮点型

  • float:单精度浮点数,通常占用 4 字节。
  • double:双精度浮点数,通常占用 8 字节。
  • long double:扩展精度浮点数,通常占用 8 或 16 字节。

字符型

  • char:用于存储单个字符,通常占用 1 字节。
  • wchar_t:宽字符,用于存储 Unicode 字符。
  • char16_tchar32_t:用于存储 UTF-16 和 UTF-32 编码的字符。

布尔型

  • bool:用于存储布尔值(truefalse),通常占用 1 字节。

数据类型修饰符

C++ 提供了修饰符来改变数据类型的含义:

  • signed:表示有符号数(默认)。
  • unsigned:表示无符号数,只能存储非负数。
  • shortlong:用于调整整型的长度。

例如:

unsigned int positiveNumber = 42; long double highPrecision = 3.14159265358979323846;

类型大小与范围

数据类型的大小和范围依赖于编译器和平台。可以使用sizeof运算符获取类型的大小:

cout << "Size of int: " << sizeof(int) << " bytes" << endl;

典型范围(32/64 位系统):

  • int:-2,147,483,648 到 2,147,483,647
  • unsigned int:0 到 4,294,967,295
  • float:约 ±3.4e±38(7 位有效数字)
  • double:约 ±1.7e±308(15 位有效数字)

类型转换

C++ 支持隐式和显式类型转换:

  • 隐式转换:编译器自动进行的类型转换。
  • 显式转换:通过static_castdynamic_castconst_castreinterpret_cast实现。

例如:

int i = 42; double d = i; // 隐式转换 float f = static_cast<float>(d); // 显式转换

自定义数据类型

除了内置类型,C++ 还允许用户定义自己的数据类型:

  • struct:结构体,用于组合不同类型的数据。
  • class:类,用于实现面向对象编程。
  • enum:枚举,用于定义一组命名的常量。
  • typedefusing:用于创建类型别名。

例如:

struct Point { int x; int y; }; enum Color { Red, Green, Blue }; using Distance = double;

类型推断

C++11 引入了auto关键字,用于自动推断变量类型:

auto x = 42; // x 的类型为 int auto y = 3.14; // y 的类型为 double

总结

C++ 提供了丰富的数据类型以满足不同的编程需求。理解这些类型的特点和适用范围,有助于编写高效、可靠的代码。在实际开发中,应根据数据的性质和操作需求选择合适的数据类型。


http://www.jsqmd.com/news/231348/

相关文章:

  • 一文说清树莓派插针定义的物理编号与BCM区别
  • 一文说清常见USB转串口芯片驱动下载方式
  • C++ 有用的资源
  • 当教育遇上AI:瞬维AI如何为教培行业打开获客新通路?
  • 解密 AI 人工智能里的 Gemini 技术商业化
  • Parasoft C/C++test与MISRA C++兼容性问题解析
  • Altium Designer差分信号布局实战案例详解
  • Multisim下载在虚拟课堂中的应用完整示例
  • arm64平台上交叉编译x64动态库完整步骤
  • 零基础搭建Multisim主数据库:手把手教程
  • iverilog操作指南:常用命令参数深度剖析
  • 毛球修剪器电路图中驱动电路热管理设计:工程实践指南
  • T触发器时序约束设置:FPGA设计中的关键步骤
  • 技术驱动服务型民企突围:玄晶引擎AI数字化方案的落地逻辑与价值实现
  • GDAL 实现矢量合并
  • 提升用户体验的标签切换方案:QTabWidget实战案例
  • circuit simulator中实现前仿真与后仿真的统一平台方案
  • 大电流电感的热管理与散热设计实践案例
  • 一文说清MOSFET工作原理:开关模式基础认知
  • 设计模式学习(11) 23-9 组合模式
  • FreeRTOS任务调度模式选择核心要点
  • 快速理解risc-v五级流水线cpu:核心要点通俗解释
  • 慢生活并非消极躺平,而是主动选择将生活节奏调整到与身心需求匹配的状态
  • OrCAD下载与License配置:实战案例分享
  • aarch64虚拟化性能优化策略实战案例分析
  • vivado2019.2安装破解教程在课程设计中的实际应用情况研究
  • 2.智梯云枢・全维管控广告系统——解决串口卡顿 + 优化稳定性
  • 全面讲解PL2303芯片USB Serial驱动下载注意事项
  • 跨模块数据传递方案:SystemVerilog接口实践
  • 基于Intel Cyclone器件的8位加法器实现方案