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

Con trỏ tới cấu trúc (struct) trong ngôn ngữ C là gì?


Con trỏ tới cấu trúc giữ địa chỉ của toàn bộ cấu trúc.

Nó được dùng để tạo các cấu trúc dữ liệu phức tạp như danh sách liên kết, cây, đồ thị, v.v.

Các thành viên của cấu trúc có thể được truy cập bằng toán tử đặc biệt gọi là toán tử mũi tên (->).

Khai báo

Khai báo cho con trỏ tới cấu trúc trong C:

struct tagname *ptr;

Ví dụ: struct student *s;

Truy cập

Cách truy cập con trỏ tới cấu trúc:

Ptr->membername;

Ví dụ: s->sno, s->sname, s->marks;

Chương trình ví dụ

Chương trình sau minh họa việc sử dụng con trỏ tới cấu trúc:

#include <stdio.h> 
struct student { 
    int sno; 
    char sname[30]; 
    float marks; 
}; 
main() { 
    struct student s; 
    struct student *st; 
    printf("Nhập sno, sname, marks: "); 
    scanf("%d%s%f", &s.sno, s.sname, &s.marks); 
    st = &s; 
    printf("Chi tiết sinh viên:\n"); 
    printf("Số = %d\n", st->sno); 
    printf("Tên = %s\n", st->sname); 
    printf("Điểm = %f\n", st->marks); 
    getch(); 
}

Kết quả

Nhập sno, sname, marks: 1 Lucky 98 
Chi tiết sinh viên: 
Số = 1 
Tên = Lucky 
Điểm = 98.000000

Ví dụ 2

Ví dụ khác giải thích hoạt động của con trỏ tới cấu trúc:

#include <stdio.h> 
struct person { 
    int age; 
    float weight; 
}; 
int main() { 
    struct person *personPtr, person1; 
    personPtr = &person1; 
    printf("Nhập tuổi: "); 
    scanf("%d", &personPtr->age); 
    printf("Nhập cân nặng: "); 
    scanf("%f", &personPtr->weight); 
    printf("Hiển thị:\n"); 
    printf("Tuổi: %d\n", personPtr->age); 
    printf("Cân nặng: %f", personPtr->weight); 
    return 0; 
}

Kết quả

Nhập tuổi: 45 
Nhập cân nặng: 60 
Hiển thị: 
Tuổi: 45 
Cân nặng: 60.000000