跳转到主内容
极星编程网:以代码为星,赴技术山海!

c++中sizeof是什么_C++数据类型大小运算符用法

sizeof是C++关键字和编译时运算符,用于获取类型或变量的字节大小;可作用于类型名或变量名,如sizeof(int)、sizeof var;其结果依赖平台,常见类型在64位系统下int为4字节、double为8字节、指针为8字节;可用于计算数组总大小及元素个数,如sizeof(arr)/sizeof(arr[0]);注意字符串字面量包含'\0',结构体受内存对齐影响,且sizeof不执行表达式(如i++无副作用)。 sizeof 是 C++ 中的一个**关键字**,也是一个**编译时运算符**,用于获取数据类型或变量在内存中所占的 字节 数。它不是函数,而是在程序编译阶段就计算出结果的运算符,因此执行效率非常高。 sizeof 的基本语法 sizeof 可以作用于两种对象: sizeof(类型名) :获取指定数据类型的大小(以字节为单位) sizeof(变量名) 或 sizeof 变量名 :获取某个变量所占的字节数 示例代码:
#include using namespace std; int main() { cout << "int 大小: " << sizeof(int) << " 字节" << endl; cout << "char 大小: " << sizeof(char) << " 字节" << endl; double d; cout << "double 变量大小: " << sizeof d << " 字节" << endl; return 0; }
常见数据类型的大小(典型值) 注意:sizeof 的结果依赖于编译器和平台(如 32 位 vs 64 位系统),以下是一般情况下的常见值(以 64 位系统 GCC 编译器为例): sizeof(char) = 1 字节 sizeof(short) = 2 字节 sizeof(int) = 4 字节 sizeof(long) = 8 字节(Linux/64位系统)或 4 字节(Windows) sizeof(long long) = 8 字节 sizeof(float) = 4 字节 sizeof(double) = 8 字节 sizeof(bool) = 1 字节 sizeof(指针) = 8 字节(64位系统)或 4 字节(32位系统) sizeof 在数组中的应用 sizeof 可以用来获取整个数组占用的总字节数,这是它非常实用的一个场景。 Trae win Trae Windows 官方版本现已全面支持 Win10 和 Win11 系统(64位)。国内开发者可直接访问 Trae 中文官网(trae.cn 或 trae.com.cn),一键下载官方正版 .exe 安装包,享受国内直连的高速稳定体验。安装过程极其简便,双击即可运行,并支持一键无缝导入 VS Code 或 Cursor 的原有主题、快捷键及插件配置。登录支持手机号、微信或稀土掘金账号。内置免费的豆包与 DeepSeek 等顶级大模型,让你开箱即用,轻松开启高效的 AI 智能编程之旅。 下载 立即学习 “ C++免费学习笔记(深入) ”;
int arr[10]; cout << "数组总大小: " << sizeof(arr) << " 字节" << endl; // 输出 40(假设 int 为 4 字节) cout << "元素个数: " << sizeof(arr) / sizeof(arr[0]) << endl; // 计算数组长度
这种方法常用于在函数外计算静态数组的元素个数。但注意:当数组作为参数传递给函数时,会退化为指针,此时 sizeof 将不再返回整个数组的大小。 sizeof 注意事项 sizeof 在编译期求值,不会对表达式进行实际计算。例如: sizeof(i++) 不会使 i 自增,只是查看 i 的类型大小。 对字符串字面量使用 sizeof 时,会包含末尾的 '\0' 结束符: sizeof("hello") 返回 6,而不是 5。 结构体的大小可能因 内存对齐 而大于成员大小之和,sizeof 会返回对齐后的总大小。 基本上就这些。sizeof 是理解 C++ 内存布局的基础工具,合理使用可以帮助你写出更高效、更安全的代码。

相关文章