Computer >> Máy Tính >  >> Lập trình >> lập trình C

Làm cách nào để gửi toàn bộ mảng dưới dạng đối số trong ngôn ngữ C?

Mảng là một nhóm các mục có liên quan được lưu trữ với một tên chung.

Khai báo mảng

Cú pháp khai báo một mảng như sau -

datatype array_name [size];

Khởi tạo

Một mảng có thể được khởi tạo theo hai cách, như sau -

  • Khởi tạo thời gian biên dịch.
  • Khởi tạo thời gian chạy.

Một mảng cũng có thể được khởi tạo tại thời điểm khai báo như sau -

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

Chức năng

Hàm là một khối khép kín thực hiện một nhiệm vụ cụ thể đã được xác định rõ. Hai cách truyền mảng làm đối số cho các hàm như sau -

  • Gửi toàn bộ mảng dưới dạng đối số cho hàm.

  • Gửi các phần tử riêng lẻ dưới dạng đối số cho hàm.

Bây giờ, chúng ta hãy hiểu cách gửi toàn bộ mảng dưới dạng đối số cho hàm trong ngôn ngữ C.

Gửi toàn bộ mảng dưới dạng đối số cho hàm

  • Để gửi toàn bộ một mảng dưới dạng đối số, hãy thử gửi tên mảng trong lệnh gọi hàm.

  • Để nhận toàn bộ một mảng, một mảng phải được khai báo trong tiêu đề hàm.

Ví dụ 1

Tham khảo một ví dụ được đưa ra bên dưới -

#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]);
}

Đầu ra

Khi đoạn mã trên được biên dịch cùng nhau và được thực thi, nó tạo ra kết quả sau -

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

Ví dụ 2

Sau đây là chương trình C để in các phần tử theo thứ tự ngược lại từ mảng -

#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); // 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\n",array[i]);
   }
}

Đầu ra

Khi chương trình trên được biên dịch cùng nhau và được thực thi, nó sẽ tạo ra kết quả sau -

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