📅  最后修改于: 2023-12-03 14:47:28.140000             🧑  作者: Mango
sizeof
运算符是一个在 C、C++ 和其他一些支持它的编程语言中可用的操作符,用来计算数据类型的大小,即在内存中分配的字节数。
sizeof
运算符的语法如下:
sizeof(type)
sizeof(expression)
其中,type
可以是任意的 C 数据类型(如 int
、double
、char
、struct
等等),expression
可以是任意的 C 表达式。
sizeof
运算符返回的是指定类型或表达式所占用的字节数。注意,sizeof
返回的大小是 size_t
类型的无符号整数。
下面是一些 sizeof
运算符的示例:
#include <stdio.h>
int main() {
// 计算 int 类型所占用的字节数,并输出结果
printf("sizeof(int) = %zu\n", sizeof(int));
// 计算 char 类型所占用的字节数,并输出结果
printf("sizeof(char) = %zu\n", sizeof(char));
// 计算数组长度并输出结果
int arr[] = {1, 2, 3, 4, 5};
int len = sizeof(arr) / sizeof(arr[0]);
printf("arr 长度为 %d\n", len);
// 计算结构体大小并输出结果
struct my_struct {
int a;
char b;
double c;
};
printf("sizeof(struct my_struct) = %zu\n", sizeof(struct my_struct));
return 0;
}
输出结果如下:
sizeof(int) = 4
sizeof(char) = 1
arr 长度为 5
sizeof(struct my_struct) = 16
sizeof
运算符只是计算数据类型或表达式本身所占的字节数,不会考虑该类型或表达式指向的内容所占用的空间。sizeof
运算符可以用来计算数组长度,但只能用在已经定义了数组变量的地方。不能用于函数参数中的数组,因为在函数参数中数组会被自动转换成指针类型。sizeof
运算符返回的大小可能并不总是准确的。如果需要准确地计算类的大小,请使用 sizeof
运算符和 alignof
运算符的结合,或使用 std::size
函数。