在C语言开发中,获取数组长度是常见的操作需求,但C语言没有内置的数组长度属性,需要开发者根据数组的类型和存储特点自行计算。不同场景下的数组求长度方法有所区别,下面逐一介绍常用的实现方式。

普通数组求长度的方法
对于定义在函数内部的普通数组,最常用的方法是结合sizeof运算符计算。数组的总字节数除以单个元素的字节数,就能得到数组的元素个数,也就是数组长度。
实现逻辑如下:
#include <stdio.h>
int main() {
int arr[] = {1, 2, 3, 4, 5};
// 计算数组总字节数
int total_size = sizeof(arr);
// 计算单个元素的字节数
int elem_size = sizeof(arr[0]);
// 数组长度 = 总字节数 / 单个元素字节数
int arr_len = total_size / elem_size;
printf("数组长度为:%dn", arr_len);
return 0;
}
这里需要注意,sizeof(arr)得到的是整个数组占用的内存空间大小,而不是数组首元素的地址大小。如果数组是字符数组且存储的是字符串,还可以通过遍历字符直到遇到结束符