C函数传入一个数组数组
时间: 2023-10-20 18:05:49 浏览: 45
在C语言中,函数可以通过传入数组来操作数组中的数据。以下是一个示例函数,它将一个整数数组作为参数,并将数组中每个元素加倍:
```
void double_array(int arr[], int len) {
for (int i = 0; i < len; i++) {
arr[i] *= 2;
}
}
```
在此函数中,参数`arr`是一个整数数组,参数`len`是数组的长度。函数使用`for`循环遍历数组中的每个元素,并将其乘以2。因为数组是通过指针传递的,所以在函数内对数组的修改也会影响到函数外的数组。
相关问题
C函数传入一个指针数组
C语言中,可以通过传入一个指针数组来实现对数组的操作。
指针数组是由多个指针构成的数组,每个指针指向一个变量或者数据结构。在函数中传入一个指针数组时,需要声明一个指向指针数组的指针作为函数的参数。
例如,假设有一个指针数组,它的元素是整型变量的指针,可以定义一个函数来对这个指针数组进行操作:
```
void operateIntArray(int **arr, int len)
{
int i;
for (i = 0; i < len; i++) {
(*arr)[i] = (*arr)[i] * 2;
}
}
```
在这个函数中,参数 `arr` 是一个指向指针数组的指针,`len` 表示指针数组的长度。函数遍历指针数组中的所有指针,并对每个指针指向的整型变量进行操作,这里是将其乘以2。
调用这个函数时,需要将指针数组的地址作为参数传入:
```
int arr1[] = {1, 2, 3, 4, 5};
int arr2[] = {6, 7, 8, 9, 10};
int *arr[] = {arr1, arr2};
operateIntArray(arr, 5); // 对arr1和arr2中的整型变量都乘以2
```
C语言自定义函数传入数组,传出数组
在C语言中,函数可以通过传入数组的指针来操作数组,并且也可以通过传出数组的指针来返回修改后的数组。下面是一个例子:
```c
#include <stdio.h>
void changeArray(int* arr, int size) {
for (int i = 0; i < size; i++) {
arr[i] = arr[i] * 2;
}
}
void fillArray(int* arr, int size) {
for (int i = 0; i < size; i++) {
arr[i] = i + 1;
}
}
int main() {
int arr[5];
fillArray(arr, 5);
changeArray(arr, 5);
for (int i = 0; i < 5; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
在这个例子中,我们定义了两个函数:`fillArray`和`changeArray`。`fillArray`函数传入一个数组指针和数组大小,用来填充数组。`changeArray`函数也传入一个数组指针和数组大小,用来修改数组。在`main`函数中,我们先调用`fillArray`函数来填充数组,然后再调用`changeArray`函数来修改数组。最后,我们输出修改后的数组。
需要注意的是,函数中修改的是原数组,而不是数组的拷贝。因此,当函数执行完后,原数组的值就被修改了。