c语言调用函数怎么返回数组
时间: 2023-10-02 16:04:40 浏览: 106
在C中如何使函数返回数组
4星 · 用户满意度95%
在C语言中,数组名本身就可以被视为指向该数组首元素的指针。因此,如果要在函数调用中返回数组,可以通过将数组名作为返回值来实现。
例如,以下示例程序演示了如何在函数调用中返回数组:
```c
#include <stdio.h>
int *get_array(int size) {
static int arr[10]; // 静态局部数组
for (int i = 0; i < size; i++) {
arr[i] = i; // 初始化数组元素
}
return arr; // 返回数组名
}
int main() {
int *p = get_array(5); // 调用函数并接收返回值
for (int i = 0; i < 5; i++) {
printf("%d ", p[i]); // 输出数组元素
}
return 0;
}
```
在上述程序中,`get_array()` 函数接收一个整数参数 `size`,并返回一个指向静态局部数组的指针。在函数内部,数组元素被初始化为 0 到 `size-1` 的序列。最后,数组名 `arr` 被作为函数返回值返回。
在主函数中,我们通过调用 `get_array()` 函数并接收其返回值来获取数组指针 `p`。然后,我们可以通过 `p[i]` 的方式访问数组元素,并输出它们的值。
需要注意的是,由于在函数内部声明的局部数组在函数返回后会被销毁,因此我们在 `get_array()` 函数中使用了一个静态局部数组。这样,数组就可以在函数返回后继续存在,从而可以被函数外部的代码使用。
另外,由于在函数外部无法得知数组的长度,因此在实际使用中需要通过其他方式来传递数组长度信息。比如,可以把数组长度作为函数的参数之一传递进去,或者在数组的第一个元素中存储数组长度信息。
阅读全文