C sizeof 运算符

获取内存大小

我们在数据类型章节中介绍过,变量的内存大小根据类型而变化:

数据类型 大小
int 2 或 4 字节
float 4 字节
double 8 字节
char 1 字节

内存大小指的是某种类型在计算机内存中占用的空间量。

要实际获取数据类型或变量的大小(以字节为单位),请使用 sizeof 运算符:

实例

int myInt;
float myFloat;
double myDouble;
char myChar;

printf("%lu\n", sizeof(myInt));
printf("%lu\n", sizeof(myFloat));
printf("%lu\n", sizeof(myDouble));
printf("%lu\n", sizeof(myChar));

亲自试一试

请注意,我们使用 %lu 格式说明符来打印结果,而不是 %d。这是因为编译器期望 sizeof 运算符返回长无符号整数(%lu),而不是整数(%d)。在某些计算机上,它可能适用于 %d,但使用 %lu 更安全。

为什么我要知道数据类型的大小?

将正确的数据类型用于正确的目的将节省内存提高程序的性能

您将在本教程后面详细了解 sizeof 运算符,以及如何在不同场景中使用它。