可以使用sizeof
运算符计算给定类型占用的字节数。sizeof(int)
返回int
类型变量占用的字节数,结果是size_t
类型的整数。size_t
在标准头文件stddef.h
中定义,以及其他几个头文件。
size_t size = sizeof(long long);
可以将sizeof
运算符应用于表达式。在这种情况下,结果是评估表达式得到的值的大小。以下代码将输出每种数字类型占用的字节数:
#include <stdio.h>
int main(void)
{
printf("char类型的变量占据 %ld 字节数 \n", sizeof(char));
printf("short类型的变量占据 %ld 字节数 \n", sizeof(short));
printf("int类型的变量占据 %ld 字节数 \n", sizeof(int));
printf("long类型的变量占据 %ld 字节数 \n", sizeof(long));
printf("long long类型的变量占据 %ld 字节数 \n", sizeof(long long));
printf("float类型的变量占据 %ld 字节数 \n", sizeof(float));
printf("double类型的变量占据 %ld 字节数 \n", sizeof(double));
printf("long double类型的变量占据 %ld 字节数 \n", sizeof(long double));
return 0;
}
编译和执行上面示例代码,得到以下结果:
hema@ubuntu:~/book$ gcc main.c
hema@ubuntu:~/book$ ./a.out
char类型的变量占据 1 字节数
short类型的变量占据 2 字节数
int类型的变量占据 4 字节数
long类型的变量占据 8 字节数
long long类型的变量占据 8 字节数
float类型的变量占据 4 字节数
double类型的变量占据 8 字节数
long double类型的变量占据 16 字节数
sizeof
运算符产生无符号整数值,因此使用%u
或%ld
说明符输出它。可以使用表达式sizeof var_name
获取变量var_name
占用的字节数。