Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Cách truyền từng thành viên cấu trúc làm đối số cho hàm trong C


Có ba cách để truyền giá trị của cấu trúc từ hàm này sang hàm khác:

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

Hãy xem cách truyền từng thành viên của cấu trúc làm đối số cho hàm.

  • Mỗi thành viên được truyền làm đối số trong lời gọi hàm.
  • Chúng được thu nhận độc lập trong các biến thông thường trong tiêu đề hàm.

Ví dụ 1

Chương trình C minh họa truyền từng đối số của cấu trúc cho hàm:

#include <stdio.h> 
struct date { 
    int day; 
    int mon; 
    int yr; 
}; 
main() { 
    struct date d = {02, 01, 2010}; 
    display(d.day, d.mon, d.yr); // truyền từng thành viên làm đối số 
    getch(); 
} 
display(int a, int b, int c) { 
    printf("Ngày = %d\n", a); 
    printf("Tháng = %d\n", b); 
    printf("Năm = %d\n", c); 
}

Kết quả

Ngày = 2 
Tháng = 1 
Năm = 2010

Ví dụ 2

Ví dụ khác minh họa truyền từng đối số của cấu trúc cho hàm:

#include <stdio.h> 
#include <string.h> 
struct student { 
    int id; 
    char name[20]; 
    float percentage; 
    char temp; 
}; 
struct student record; // Khai báo toàn cục cấu trúc 
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 là: %d\n", id); 
    printf("Tên là: %s\n", name); 
    printf("Phần trăm là: %.2f\n", percentage); 
}

Kết quả

ID là: 1 
Tên là: Raju 
Phần trăm là: 86.50