sizeof
是 C++ 中的一个编译时运算符,用于获取一个类型
或对象
在内存中所占的字节数(单位:字节,byte)。
用法
- 获取类型的大小:
std::cout << sizeof(int) << std::endl; // 输出int类型的字节数
- 获取变量/对象的大小:
double d = 3.14;
std::cout << sizeof(d) << std::endl; // 输出变量d的字节数
- 获取数组的总字节数:
int arr[10];
std::cout << sizeof(arr) << std::endl; // 输出整个数组的字节数(不是元素个数)
- 结合类型推断:
auto x = 123L;
std::cout << sizeof(x) << std::endl;
特点
• sizeof 在编译时计算
,不会在运行时产生额外开销。
• 括号可有可无(对类型必须加括号,对变量可省略)。
• 结果类型是 size_t,通常是无符号整数。
注意事项
• 对数组名使用 sizeof 得到的是整个数组的字节数,不是元素个数。要获取元素个数可用:sizeof(arr) / sizeof(arr[0])
• 对指针使用 sizeof 得到的是指针本身的大小,不是指针指向的数据大小。
示例
#include <iostream>
int main() {
int a = 10;
double b = 3.14;
int arr[5];
std::cout << "int: " << sizeof(int) << std::endl;
std::cout << "a: " << sizeof(a) << std::endl;
std::cout << "double: " << sizeof(double) << std::endl;
std::cout << "b: " << sizeof(b) << std::endl;
std::cout << "arr: " << sizeof(arr) << std::endl;
std::cout << "arr元素个数: " << sizeof(arr) / sizeof(arr[0]) << std::endl;
return 0;
}
总结
sizeof 是C++中用于获取类型或对象所占内存字节数的关键字,常用于类型分析、内存分配、数组操作等场景。