将数组传递给C函数– 3种简单方法!
时间:2020-02-23 14:32:05 来源:igfitidea点击:
在本文中,我们将重点介绍将数组传递给C函数的3种简单方法。
所以,让我们开始吧!
什么是C数组?
C中的数组是一种数据结构,在某些静态内存位置上一共存储相似类型的数据值。
数组可以与函数一起使用,以一起处理和操纵各种数据元素。
因此,现在让我们看一下将数组传递给函数的三种技术中的每一种。
技术1:通过按值调用将数组传递给C函数
在这种技术中,我们将通过按值调用方法将数组传递给函数。
在按值调用时,实际参数的值将复制到函数的形式参数列表中。
因此,在函数内所做的更改不会反映在调用函数的实际参数列表中。
让我们看下面的示例,以清楚地了解此技术。
#include <stdio.h> void show_value(int a) { printf("%d ", a); } int main() { int a[] = {10,20,30,40,50}; printf("The elements of Array:\n"); for (int i=0; i<5; i++) { show_value (a[i]); } return 0; }
因此,这里我们通过一个for循环将数组的每个元素传递给了函数" show_value"。
输出:
The elements of Array: 10 20 30 40 50
技术2:通过引用调用将数组传递给C函数
在call be reference技术中,我们将参数的地址作为参数传递。
也就是说,实际参数和形式参数都指向同一位置。
因此,函数内部所做的任何更改也会反映在实际参数中。
因此,现在让我们通过以下示例了解实现:
#include <stdio.h> void show_value(int *a) { printf("%d ", *a); } int main() { int a[] = {10,20,30,40,50}; printf("The elements of Array:\n"); for (int i=0; i<5; i++) { show_value (&a[i]); } return 0; }
其中我们将数组中存在的每个元素的地址传递为"&array [element]"。
输出:
The elements of Array: 10 20 30 40 50
方法3:将整个数组直接传递给函数!
在上面的示例中,我们以元素明智的方式将数组传递给了函数。
即,元素被一一传递。
现在,我们将整个数组直接传递给函数,如下所示
#include <stdio.h> void print_arr( int *arr, int size) { for(int i=1; i<=size; i++) { printf("Element [%d] of array: %d \n", i, *arr); arr++; } } int main() { int arr[] = {10,20,30,40,50}; print_arr(arr,5); return 0; }
其中我们已经将整个数组及其大小传递给了函数。
此外,我们使用for循环打印数组的每个元素,而语句arr ++
使我们能够递增指针并引用数组的下一个元素,直到满足条件为止。
输出:
Element [1] of array: 10 Element [2] of array: 20 Element [3] of array: 30 Element [4] of array: 40 Element [5] of array: 50