c语言数组作为形参怎么传递和返回,返回后如何访问
时间: 2024-03-10 11:47:33 浏览: 108
c语言函数参数的传递和值返回
当我们需要将数组作为参数传递给函数时,我们可以使用以下两种方式:
1. 将数组名作为指针传递给函数
这种方式实际上是将数组的第一个元素的地址传递给了函数,函数内部可以通过指针访问整个数组。
示例代码如下:
```c
void func(int *arr, int size) {
for(int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
func(arr, size);
return 0;
}
```
2. 使用数组作为形参
这种方式需要在函数参数中指定数组的大小,在函数内部直接使用数组名访问数组元素。
示例代码如下:
```c
void func(int arr[], int size) {
for(int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
func(arr, size);
return 0;
}
```
当我们需要从函数中返回数组时,我们需要将数组转换为指针,并通过指针返回数组的首地址。
示例代码如下:
```c
int *func() {
static int arr[] = {1, 2, 3, 4, 5};
return arr;
}
int main() {
int *p = func();
for(int i = 0; i < 5; i++) {
printf("%d ", *(p + i));
}
return 0;
}
```
在主函数中,我们通过指针访问了函数返回的数组元素。
阅读全文