c语言中怎么返回数组的长度

在C语言中,返回数组的长度可以通过以下几种方法实现:

c语言中怎么返回数组的长度
(图片来源网络,侵删)

1、使用指针和sizeof运算符

2、使用指针和strlen函数(仅适用于字符串数组)

3、使用动态内存分配和malloc函数

4、使用结构体和typedef定义数组类型

下面将详细介绍这四种方法。

方法一:使用指针和sizeof运算符

我们需要创建一个指向数组的指针,然后使用sizeof运算符计算数组的长度,这种方法适用于任何类型的数组,包括整数、浮点数、字符等。

示例代码:

#include <stdio.h>
int getArrayLength(int arr[], int *length) {
    *length = sizeof(arr) / sizeof(arr[0]);
    return 0;
}
int main() {
    int arr[] = {1, 2, 3, 4, 5};
    int length;
    getArrayLength(arr, &length);
    printf("数组长度为:%d
", length);
    return 0;
}

方法二:使用指针和strlen函数(仅适用于字符串数组)

对于字符串数组,我们可以使用指针和strlen函数来计算数组的长度,但是需要注意的是,这种方法只适用于以空字符’0’结尾的字符串数组。

示例代码:

#include <stdio.h>
#include <string.h>
int getStringArrayLength(char *arr[], int *length) {
    *length = strlen(arr[0]) + 1; // 加1是因为要计算空字符'