如何在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); // Sending entire array ‘a’ using array name
   getch( );
}
void display (int a[5]) {//receiving entire array
   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: 
");    //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 :
");    rev(array); // Sending entire array ‘a’ using array name    getch(); } void rev(int array[5]){ //receiving entire array    int i;    for(i=4;i>=0;i--){       //Displaying O/p//       printf("array[%d] :",i);       printf("%d
",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

更新於:2021年3月17日

229 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.