C/C++ 数据类型选择笔记:int、long long、char、string、float、double

C/C++ 数据类型选择笔记:int、long long、char、string、float、double

在 C/C++ 编程中,选择合适的数据类型不仅影响 内存占用 ,还关系到 效率与精度 。本文系统总结了常见数据类型的 字节大小、位数、取值范围、适用场景和注意事项,帮助大家写出更高质量的代码。

1. int

字节数:4 字节(32 位)。

范围:

十进制:-2,147,483,648 ~ 2,147,483,647

幂次方:-2^31 ~ 2^31 - 1

适用场景:循环计数、数组下标、绝大多数整数运算。

注意 :超过 ±2^31 时请改用 long long。

2. long long

字节数:8 字节(64 位)。

范围:

十进制:-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

幂次方:-2^63 ~ 2^63 - 1

适用场景 :大整数运算(如 10^12 级别)、算法竞赛、结果可能超出 int 时。

注意 :输入输出需使用 %lld,避免与 int 混用。

3. char

字节数:1 字节(8 位)。

范围:

有符号:-128 ~ 127,即 -2^7 ~ 2^7 - 1

无符号:0 ~ 255,即 0 ~ 2^8 - 1

适用场景 :单个字符(如 'a'、'1')、ASCII 处理、小范围整数。

注意 :char 既可作字符,也可作 1 字节整数,数值运算需谨慎。

4. string(C++ 专用)

说明 :基于 std::basic_string,每个字符占 1 字节(8 位),整体大小随内容动态变化。

适用场景:文本处理、拼接、查找、子串操作。

注意:

cin >> s 遇空格会截断,整行输入需用 getline()。

与 C 接口交互时可用 s.c_str() 转换为 const char*。

5. float

字节数:4 字节(32 位,符合 IEEE 754 单精度标准)。

范围 :约 ±3.4 × 10^38

指数范围 :约 2^-126 ~ 2^127

有效精度 :7 位有效数字(约能保证小数点后 6 位)。

适用场景:

内存敏感场景(嵌入式设备、大规模浮点数组)。

对精度要求不高的近似计算(如图形学、绘图坐标)。

注意:精度有限,大量运算会积累误差;金融和高精度科学计算不推荐。

6. double

字节数:8 字节(64 位,符合 IEEE 754 双精度标准)。

范围 :约 ±1.7 × 10^308

指数范围 :约 2^-1022 ~ 2^1023

有效精度 :15~16 位有效数字(约能保证小数点后 15 位)。

适用场景:

默认推荐:常规浮点运算。

科学计算:对精度要求较高的场景。

注意:

默认浮点字面量是 double(例如 3.14)。

若需更高精度,可使用 long double 或大数库。

类型选择速查表

类型

字节数

位数

范围(十进制)

范围(幂次方)

精度/适用场景

int

4B

32b

-2,147,483,648 ~ 2,147,483,647

-2^31 ~ 2^31-1

常用整数,±21 亿以内

long long

8B

64b

-9.22e18 ~ 9.22e18

-2^63 ~ 2^63-1

大整数运算、竞赛

char

1B

8b

-128 ~ 127 / 0 ~ 255

-2^7 ~ 2^7-1 / 0~2^8-1

字符、ASCII、小整数

string

动态

动态

取决于长度

-

文本处理

float

4B

32b

±3.4e38

2^-126 ~ 2^127

~7 位有效数字,节省内存

double

8B

64b

±1.7e308

2^-1022 ~ 2^1023

~15 位有效数字,默认推荐

风雨相关

安卓手机自带VPN设置教程?遇到问题如何解决?
365bet足球比分

安卓手机自带VPN设置教程?遇到问题如何解决?

🌀 07-27 💧 阅读 8074
喧豗的读音是什么意思
365bet足球比分

喧豗的读音是什么意思

🌀 10-17 💧 阅读 9411