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