C 语言 - 数组大小

获取数组大小

要获取数组的大小,您可以使用 sizeof 运算符:

实例

int myNumbers[] = {10, 25, 50, 75, 100};

printf("%zu", sizeof(myNumbers));  // 输出 20

亲自试一试

注意:为什么数组包含 5 个元素,结果却显示 20,而不是 5?

这是因为 sizeof 运算符返回的是类型的大小,以字节为单位。

您从数据类型章节了解到,int 类型通常是 4 个字节,因此根据上面的例子,4 x 5(4 字节 x 5 个元素)= 20 字节

在需要良好内存管理的较大程序中,了解数组的内存大小非常有用。

但是,如果您只想知道数组存储了多少个元素呢?

获取元素个数

如果您想找出数组有多少个元素,可以使用以下公式,即将数组的总大小除以一个元素的大小:

实例

int myNumbers[] = {10, 25, 50, 75, 100};
int length = sizeof(myNumbers) / sizeof(myNumbers[0]);

printf("%d", length);  // 输出 5

亲自试一试

这个 sizeof 公式适用于任何类型和任何大小的数组:

实例

double myValues[] = {1.1, 2.2, 3.3};
int length = sizeof(myValues) / sizeof(myValues[0]);

printf("%d", length);  // 输出 3

亲自试一试

在下一章中,您将看到如何使用此公式创建能够自动适应数组大小的循环。