C 教程

浏览3732
更新时间2025-08-05

获取数组大小或长度

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

实例

int myNumbers[] = {10, 25, 50, 75, 100};
printf("%lu", 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
运行实例 »

点击 "运行实例" 按钮查看在线实例

创建更好的循环

在上一章的数组循环部分,我们在循环条件中写入了数组的大小(i < 4)。这并不理想,因为它仅适用于指定大小的数组。

但是,通过使用上面示例中的 sizeof 公式,我们现在可以创建适用于任何大小的数组的循环,这更具可持续性。

不要写成这样:

实例

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

for (i = 0; i < 4; i++) {
  printf("%d\n", myNumbers[i]);
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

最好这样写:

实例

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

for (i = 0; i < length; i++) {
  printf("%d\n", myNumbers[i]);
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

相关视频

更多

免费

php8,我来也
初级php8,我来也

321849次学习

收藏

免费

Thinkphp6.0正式版视频教程
中级Thinkphp6.0正式版视频教程

382472次学习

收藏

免费

细说PHP第一季
中级细说PHP第一季

282866次学习

收藏

免费

简单聊聊PHP创业那点事
初级简单聊聊PHP创业那点事

13418次学习

收藏
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号