易百教程

数组大小

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 字节数。