📜  获取数组的长度 - C 编程语言(1)

📅  最后修改于: 2023-12-03 15:27:50.510000             🧑  作者: Mango

获取数组的长度 - C 编程语言

在 C 编程语言中,要获取数组的长度,可以使用 sizeof 运算符来计算数组所占空间的大小,再除以数组中每个元素的大小。以下是两种方法来获取数组的长度:

方法一:使用 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
总结

以上是两种获取数组长度的方法,其中第二种方法使用宏定义可以方便地在多个地方使用,使得代码更加简洁和易读。无论哪种方法,都可以方便地获取数组的长度。