📅  最后修改于: 2023-12-03 15:27:50.510000             🧑  作者: Mango
在 C 编程语言中,要获取数组的长度,可以使用 sizeof
运算符来计算数组所占空间的大小,再除以数组中每个元素的大小。以下是两种方法来获取数组的长度:
#include <stdio.h>
int main() {
int arr[] = { 1, 2, 3, 4, 5 };
int len = sizeof(arr) / sizeof(arr[0]);
printf("数组的长度是 %d\n", len);
return 0;
}
解释:
sizeof(arr)
返回整个数组占用的空间大小,即 sizeof(int) * 5
,等于 20
sizeof(arr[0])
返回数组中每个元素的大小,即 sizeof(int)
,等于 4
sizeof(arr) / sizeof(arr[0])
得到数组中元素的个数,等于 20 / 4
,即 5
为了方便地获取数组长度,可以定义一个宏来完成上述操作。以下是一个获取数组长度的宏定义:
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
使用该宏可以方便地获取数组长度:
#include <stdio.h>
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
int main() {
int arr[] = { 1, 2, 3, 4, 5 };
int len = ARRAY_SIZE(arr);
printf("数组的长度是 %d\n", len);
return 0;
}
解释:
ARRAY_SIZE(arr)
宏替换为 (sizeof(arr) / sizeof((arr)[0]))
20 / 4
,即 5
以上是两种获取数组长度的方法,其中第二种方法使用宏定义可以方便地在多个地方使用,使得代码更加简洁和易读。无论哪种方法,都可以方便地获取数组的长度。