sizeof
运算符也可应用于数组,假设使用以下语句声明一个数组:
double values[5] = { 1.5, 2.5, 3.5, 4.5, 5.5 };
使用以下语句输出数组占用的字节数:
printf("数组 values 占用 %zu 个字节数.\n", sizeof values);
使用表达式sizeof values [0]
获取单个元素占用的字节数。数组占用的内存是单个元素的大小乘以元素的数量。使用sizeof
运算符来计算数组中的元素数:
size_t element_count = sizeof values/sizeof values[0];
修改编写前面的语句来计算数组元素的数量,如下所示:
size_t element_count = sizeof values/sizeof(double);
示例代码
#include<stdio.h>
int main(void)
{
double values[5] = { 1.5, 2.5, 3.5, 4.5, 5.5 };
size_t element_count = sizeof(values) / sizeof(values[0]);
printf("数组 values 的大小是:%zu 字节数。\n", sizeof(values));
printf("总共有 %lu 个元素,每个元素占 %zu 字节数。\n", element_count, sizeof(values[0]));
return 0;
}
执行上面示例代码,得到以下结果:
hema@ubuntu:~/book$ gcc main.c
hema@ubuntu:~/book$ ./a.out
数组 values 的大小是:40 字节数。
总共有 5 个元素,每个元素占 8 字节数。