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

Làm thế nào để chuyển các thành viên riêng lẻ làm đối số để hoạt động bằng cách sử dụng các phần tử cấu trúc?

Có ba cách mà các giá trị của cấu trúc có thể được chuyển từ chức năng này sang chức năng khác. Chúng như sau -

  • Chuyển các thành viên riêng lẻ làm đối số để hoạt động.
  • Chuyển toàn bộ cấu trúc làm đối số cho hàm.
  • Truyền địa chỉ của cấu trúc làm đối số cho hàm.

Bây giờ, hãy xem cách chuyển một thành viên riêng lẻ của các phần tử cấu trúc làm đối số cho hàm.

  • Mỗi thành viên được chuyển như một đối số trong lệnh gọi hàm.

  • Chúng được thu thập độc lập trong các biến thông thường trong tiêu đề hàm.

Ví dụ

Dưới đây là một chương trình C để chứng minh việc chuyển các đối số riêng lẻ của cấu trúc sang một hàm -

#include<stdio.h>
struct date{
   int day;
   int mon;
   int yr;
};
main ( ){
   struct date d= {02,01,2010}; // struct date d;
   display(d.day, d.mon, d.yr);// passing individual mem as argument to function
   getch ( );
}
display(int a, int b, int c){
   printf("day = %d\n", a);
   printf("month = %d\n",b);
   printf("year = %d\n",c);
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

day = 2
month = 1
year = 2010

Ví dụ 2

Hãy xem xét một ví dụ khác, trong đó, một chương trình C để chứng minh việc chuyển các đối số riêng lẻ của cấu trúc cho một hàm được giải thích bên dưới -

#include <stdio.h>
#include <string.h>
struct student{
   int id;
   char name[20];
   float percentage;
   char temp;
};
struct student record; // Global declaration of structure
int main(){
   record.id=1;
   strcpy(record.name, "Raju");
   record.percentage = 86.5;
   structure_demo(record.id,record.name,record.percentage);
   return 0;
}
void structure_demo(int id,char name[],float percentage){
   printf(" Id is: %d \n", id);
   printf(" Name is: %s \n", name);
   printf(" Percentage is: %.2f \n",percentage);
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

Id is: 1
Name is: Raju
Percentage is: 86.5