如何使用C语言将整个数组作为参数发送?

数组是一组以通用名称存储的相关项目。

声明数组

声明数组的语法如下-

datatype array_name [size];

初始化

数组可以通过两种方式初始化,如下所示:

  • 编译时初始化。

  • 运行时初始化。

数组也可以在声明时初始化,如下所示:

int a[5] = {100,200,300,400,500};

功能

函数是一个自包含的块,可以执行特定的明确定义的任务。将数组作为参数传递给函数的两种方法如下:

  • 发送整个数组作为函数的参数。

  • 发送各个元素作为函数的参数。

现在,让我们了解如何将整个数组作为参数发送给C语言函数。

发送整个数组作为函数的参数

  • 要将整个数组作为参数发送,请尝试在函数调用中发送数组名称。

  • 要接收整个数组,必须在函数头中声明一个数组。

例子1

请参考下面给出的示例-

#include<stdio.h>
main ( ){
   void display (int a[5]);
   int a[5], i;
   clrscr( );
   printf (“enter 5 elements”);
   for (i=0; i<5; i++)
      scanf(“%d”, &a[i]);
   display (a); // 使用数组名称发送整个数组“ a”
   getch( );
}
void display (int a[5]) {//接收整个数组
   int i;
   printf (“elements of the array are”);
   for (i=0; i<5; i++)
      printf(‘%d ”, a[i]);
}
输出结果

将以上代码编译在一起并执行后,将产生以下结果-

Enter 5 elements
10 20 30 40 50
Elements of the array are
10 20 30 40 50

例子2

以下是C程序,以相反的顺序从数组中打印元素-

#include<stdio.h>
void main(){
   //Declaring the array - run time//
   int array[5],i;
   void rev(int array[5]);
   //Reading elements into the array//
   printf("Enter elements into the array: \n");
   //For loop//
   for(i=0;i<5;i++){
      //Reading User I/p//
      printf("array[%d] :",i);
      scanf("%d",&array[i]);
   }
   //Displaying reverse order of elements in the array//
   printf("The elements from the array displayed in the reverse order are : \n");
   rev(array); // 使用数组名称发送整个数组“ a”
   getch();
}
void rev(int array[5]){ //接收整个数组
   int i;
   for(i=4;i>=0;i--){
      //Displaying O/p//
      printf("array[%d] :",i);
      printf("%d\n",array[i]);
   }
}
输出结果

将以上程序编译在一起并执行后,将产生以下结果-

Enter elements into the array:
array[0] :23
array[1] :34
array[2] :12
array[3] :56
array[4] :12
The elements from the array displayed in the reverse order are:
array[4] :12
array[3] :56
array[2] :12
array[1] :34
array[0] :23