将数组传递给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