📜  将数组传递给C中的函数(1)

📅  最后修改于: 2023-12-03 15:25:19.386000             🧑  作者: Mango

将数组传递给C中的函数

在C语言中,数组是一种非常有用的数据结构,而将数组作为函数的参数传递是一种常见的操作。本文将介绍如何将数组传递给C中的函数,并为大家提供一些示例代码。

将数组传递给函数

在C中,将数组作为函数的参数传递有两种方式:传递数组的指针或传递数组的副本。

传递数组的指针

传递数组的指针是一种常用的方式,它将数组的地址传递给函数,函数可以通过这个地址来访问数组的元素。下面是一个例子:

#include <stdio.h>

void printArray(int *arr, int size) {
    for(int i=0; i<size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
}

int main() {
    int arr[] = {1, 2, 3, 4, 5};
    int size = sizeof(arr) / sizeof(arr[0]);
    printArray(arr, size);
    return 0;
}

在上面的代码中,我们定义了一个函数printArray,它接受一个整型指针arr和一个整型变量size。在main函数中我们定义了一个整型数组arr,然后计算数组的大小并将其作为参数传递给printArray函数。

printArray函数中,我们使用了一个for循环来遍历数组,然后将每个元素打印出来。注意,我们可以通过arr[i]的方式来访问数组元素,因为arr是一个指向数组的指针。

传递数组的副本

传递数组的副本是另一种常用的方式,它将整个数组复制到函数的参数中。这种方式有一个缺点,就是会增加程序的内存消耗。下面是一个例子:

#include <stdio.h>

void doubleArray(int arr[], int size) {
    for(int i=0; i<size; i++) {
        arr[i] *= 2;
    }
}

int main() {
    int arr[] = {1, 2, 3, 4, 5};
    int size = sizeof(arr) / sizeof(arr[0]);
    doubleArray(arr, size);
    for(int i=0; i<size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
    return 0;
}

在上面的代码中,我们定义了一个函数doubleArray,它接受一个整型数组arr和一个整型变量size。在main函数中我们定义了一个整型数组arr,然后计算数组的大小并将其作为参数传递给doubleArray函数。

doubleArray函数中,我们使用了一个for循环来遍历数组,然后将每个元素乘以2。因为我们传递的是数组的副本,所以在doubleArray函数中修改数组的元素不会影响到main函数中的arr数组。

总结

在C语言中,将数组作为函数的参数传递是一种常见的操作。我们可以将数组的指针或数组的副本传递给函数,并在函数中访问或修改数组的元素。要注意,访问数组元素时需要使用指针或数组下标的方式来访问。在传递数组的副本时要注意增加程序的内存消耗。