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<char>,每个字符占 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 位有效数字,默认推荐
相关推荐
王老师青少年编程4 小时前
2024年信奥赛C++提高组csp-s初赛真题及答案解析(阅读程序第3题)
c++·题解·真题·csp·信奥赛·csp-s·提高组
凡人叶枫4 小时前
C++中输入、输出和文件操作详解(Linux实战版)| 从基础到项目落地,避坑指南
linux·服务器·c语言·开发语言·c++
CSDN_RTKLIB4 小时前
使用三方库头文件未使用导出符号情景
c++
傻乐u兔5 小时前
C语言进阶————指针3
c语言·开发语言
rainbow68896 小时前
Linux文件描述符与重定向原理
c++
CodeSheep程序羊6 小时前
拼多多春节加班工资曝光,没几个敢给这个数的。
java·c语言·开发语言·c++·python·程序人生·职场和发展
I'mChloe7 小时前
PTO-ISA 深度解析:PyPTO 范式生成的底层指令集与 NPU 算子执行的硬件映射
c语言·开发语言
编程小白20267 小时前
从 C++ 基础到效率翻倍:Qt 开发环境搭建与Windows 神级快捷键指南
开发语言·c++·windows·qt·学习
2的n次方_7 小时前
Runtime 内存管理深化:推理批处理下的内存复用与生命周期精细控制
c语言·网络·架构
嵌入小生0077 小时前
标准IO---核心函数接口延续(嵌入式Linux)
c语言·vscode·vim·嵌入式·小白·标准io·函数接口