📅  最后修改于: 2023-12-03 15:09:36.913000             🧑  作者: Mango
在 C 程序中,数组传递给函数是一个很常见的操作。数组是一个有序的元素序列,可以用于存储和操作相同类型的数据。在函数中,通过将数组作为参数传递给其他函数,可以传递数组中的数据,以便进行计算和操作。
在 C 中,数组是一组相同类型的元素。数组元素的索引从零开始,并按照声明的顺序进行排序。下面是一个简单的数组定义示例:
int my_array[10];
上面的代码定义了一个名为 my_array
的整数数组,其中有 10 个元素。可以像下面这样访问数组元素:
my_array[0] = 1;
my_array[1] = 2;
my_array[2] = 3;
在函数中,可以将数组作为参数传递给其他函数。有两种方法可以处理数组参数:按值传递和按指针传递。
当按值传递数组参数时,传递的是整个数组的副本。函数将获得一个指向数组的指针,但它不会直接访问数组本身。以下是一个按值传递数组参数的示例:
#include <stdio.h>
void print_array(int my_array[], int size) {
int i;
for (i = 0; i < size; i++) {
printf("%d ", my_array[i]);
}
printf("\n");
}
int main() {
int my_array[] = {1, 2, 3, 4, 5};
print_array(my_array, 5);
return 0;
}
上面的代码定义了一个名为 print_array
的函数,可以按值传递一个整数数组和其大小。函数将遍历数组并打印每个元素。在主函数中,我们创建了一个名为 my_array
的整数数组,并将其传递给 print_array
函数。
当按指针传递数组参数时,函数将获得一个指向数组的指针。函数可以直接访问数组,并可以修改其中的元素。以下是一个按指针传递数组参数的示例:
#include <stdio.h>
void double_array(int *my_array, int size) {
int i;
for (i = 0; i < size; i++) {
my_array[i] *= 2;
}
}
int main() {
int my_array[] = {1, 2, 3, 4, 5};
double_array(my_array, 5);
int i;
for (i = 0; i < 5; i++) {
printf("%d ", my_array[i]);
}
printf("\n");
return 0;
}
上面的代码定义了一个名为 double_array
的函数,它将按指针传递的整数数组中的每个元素乘以 2。在主函数中,我们创建了一个名为 my_array
的整数数组,并将其传递给 double_array
函数。最后,我们遍历数组并打印结果。
通过将数组作为参数传递给其他函数,可以传递数组中的数据,以便进行计算和操作。在 C 中,有两种方法可以处理数组参数:按值传递和按指针传递。按值传递数组参数时,传递的是整个数组的副本,而按指针传递数组参数时,函数将获得一个指向数组的指针,可以直接访问数组,并可以修改其中的元素。