C语言中函数数组参数168


在C语言中,数组是一种数据类型,用于存储相同类型的一组元素。数组元素使用索引来访问,索引从0开始。函数可以通过数组作为参数进行调用,这允许函数操作数组中的数据。

数组作为函数参数

有两种方法可以将数组作为函数参数进行传递:

通过引用传递:在这种方法中,函数接收数组的地址而不是数组本身。函数可以修改数组中的元素,并且这些更改将在调用函数后反映在原始数组中。

通过值传递:在这种方法中,数组的副本传递给函数。函数不能修改原始数组,只能修改副本。当函数返回时,副本将被销毁,不会影响原始数组。

通过引用传递数组

要通过引用传递数组,需要在函数参数类型前添加一个星号(*)。例如:void printArray(int *arr, int size);

此函数接收一个指向int数组的指针作为参数。此指针存储数组的base地址,函数可以通过它来访问数组中的元素。

通过值传递数组

要通过值传递数组,不需要在函数参数类型前添加星号。例如:void printArray(int arr[], int size);

此函数接收一个int数组的副本作为参数。该数组是原始数组的独立副本,函数只能修改副本中的元素。

示例

以下示例演示如何通过引用和通过值传递数组:```c
#include
// 通过引用传递数组
void printArray1(int *arr, int size) {
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("");
}
// 通过值传递数组
void printArray2(int arr[], int size) {
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("");
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
// 通过引用传递数组
printArray1(arr, size);
// 通过值传递数组
printArray2(arr, size);
return 0;
}
```

输出:1 2 3 4 5
1 2 3 4 5

在通过引用传递数组的情况下,函数可以修改数组中的元素,因此输出显示了原始数组中修改后的值。在通过值传递数组的情况下,函数只能修改副本中的元素,因此输出显示了原始数组的原始值。

2024-11-02


上一篇:Windows 系统下使用 C 语言进行输出

下一篇:C 语言函数中数组参数的传递