菜单
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

C 数组大小


获取数组大小或长度

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

示例

int myNumbers[] = {10, 25, 50, 75, 100};
printf("%lu", sizeof(myNumbers)); // 打印 20
自己动手试一试 »

为什么结果显示 20 而不是 5,尽管数组包含 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]);
}
自己动手试一试 »


×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持