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
运算符,以及如何在不同场景中使用它。