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