C++数据类型

C++数据类型知识点汇总 – 小白友好版

C++数据类型知识点汇总

编程小白也能轻松理解的大白话指南

数据类型就像不同大小的”容器”,决定了你能存储什么数据以及存储多少。选择合适的数据类型就像选择合适的背包一样重要!

基本数据类型

1. 整型 (int)

  • 用于存储整数(不带小数点的数字)
  • 示例:年龄、数量、年份等
  • 大小:通常4字节(32位系统)或4-8字节(64位系统)
int age = 25;
int numberOfApples = 10;

2. 浮点型 (float/double)

  • 用于存储带小数点的数字
  • float:单精度浮点数(约6-7位小数)
  • double:双精度浮点数(约15位小数)
  • 默认使用double,精度更高
float pi = 3.14f;
double precisePi = 3.1415926535;

3. 字符型 (char)

  • 用于存储单个字符
  • 大小:1字节
  • 需要用单引号括起来
char grade = ‘A’;
char symbol = ‘$’;

4. 布尔型 (bool)

  • 只有两个值:true(真)或 false(假)
  • 用于逻辑判断
  • 大小:通常1字节
bool isRaining = true;
bool hasPassedExam = false;
类型修饰符

可以加在基本类型前面,改变其含义和范围

1. signed(有符号)

  • 可以表示正数和负数(默认)
  • 示例:signed int = int

2. unsigned(无符号)

  • 只能表示非负数(0和正数)
  • 范围比有符号类型更大
unsigned int positiveNumber = 100;

3. short(短整型)

  • 占用内存更少,范围更小
  • 通常2字节
short smallNumber = 100;

4. long(长整型)

  • 占用内存更多,范围更大
  • 通常4-8字节
  • long long:超长整型(通常8字节)
long bigNumber = 1000000;
long long hugeNumber = 9000000000;

📌 小白提示: 选择类型时考虑数据范围!比如年龄用short足够,但人口数量可能需要int或long

⚠️ 注意: 不同系统上类型大小可能不同!使用sizeof()运算符查看当前系统类型大小

数据类型比较
数据类型 大小(字节) 范围 用途
bool 1 true 或 false 逻辑判断
char 1 -128 到 127 单个字符
unsigned char 1 0 到 255 小整数/字符
short 2 -32,768 到 32,767 小整数
unsigned short 2 0 到 65,535 小正整数
int 4 -2.1亿 到 2.1亿 一般整数
unsigned int 4 0 到 42.9亿 大正整数
long 4 或 8 更大整数 大整数
float 4 约±3.4e38 (6-7位小数) 单精度浮点数
double 8 约±1.7e308 (15位小数) 双精度浮点数

📌 内存小知识: 1字节(byte) = 8位(bit)。类型大小决定了它能存储多少信息,就像不同容量的水杯一样!

类型转换

1. 隐式转换(自动)

  • 编译器自动进行的安全转换
  • 小类型 → 大类型(如int转double)
int num = 5;
double d = num; // 自动把5变成5.0

2. 显式转换(强制)

  • 程序员手动指定的转换
  • 可能丢失数据(如double转int会丢掉小数部分)
double pi = 3.14159;
int approx = (int)pi; // 结果为3,小数部分丢失

⚠️ 警告: 强制转换可能导致数据丢失或意外结果,使用时要小心!

3. C++风格转换

  • static_cast:安全的类型转换
  • const_cast:移除const属性
  • dynamic_cast:类层次结构中的转换
  • reinterpret_cast:低级重新解释
double d = 3.14;
int i = static_cast<int>(d); // 更安全的转换
其他重要概念

1. 常量 (const)

  • 值不可变的变量
  • 提高代码可读性和安全性
const double PI = 3.14159;
const int MAX_SIZE = 100;

2. 类型别名 (typedef/using)

  • 给现有类型起新名字
  • 提高代码可读性
typedef unsigned long ulong;
using Salary = double;

3. 自动类型推导 (auto)

  • C++11引入的特性
  • 编译器自动推断变量类型
auto number = 10; // int
auto name = “Alice”; // const char*

4. sizeof 运算符

  • 获取数据类型或变量的大小(字节)
  • 不同系统结果可能不同
cout << "int size: " << sizeof(int); // 输出4(32位系统)

📌 最佳实践: 尽量使用const定义常量,用auto简化复杂类型声明,用sizeof检查类型大小

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部