ตัวชี้ไปยังโครงสร้างถือเป็นส่วนเสริมของโครงสร้างทั้งหมด
ใช้เพื่อสร้างโครงสร้างข้อมูลที่ซับซ้อน เช่น รายการเชื่อมโยง ต้นไม้ กราฟ และอื่นๆ
สามารถเข้าถึงสมาชิกของโครงสร้างได้โดยใช้ตัวดำเนินการพิเศษที่เรียกว่าตัวดำเนินการลูกศร ( -> )
ประกาศ
ต่อไปนี้เป็นคำประกาศสำหรับตัวชี้ไปยังโครงสร้างในการเขียนโปรแกรม C -
struct tagname *ptr;
ตัวอย่างเช่น − struct นักเรียน *s −
การเข้าถึง
มีการอธิบายวิธีเข้าถึงตัวชี้ไปยังโครงสร้างด้านล่าง
Ptr-> membername;
ตัวอย่างเช่น − s->sno, s->sname, s->marks;
ตัวอย่างโปรแกรม
โปรแกรมต่อไปนี้แสดงการใช้ตัวชี้ไปยังโครงสร้าง -
#include<stdio.h>
struct student{
int sno;
char sname[30];
float marks;
};
main ( ){
struct student s;
struct student *st;
printf("enter sno, sname, marks:");
scanf ("%d%s%f", & s.sno, s.sname, &s. marks);
st = &s;
printf ("details of the student are");
printf ("Number = %d\n", st ->sno);
printf ("name = %s\n", st->sname);
printf ("marks =%f\n", st ->marks);
getch ( );
} ผลลัพธ์
ให้เราเรียกใช้โปรแกรมข้างต้นที่จะให้ผลลัพธ์ดังต่อไปนี้ -
enter sno, sname, marks:1 Lucky 98 details of the student are: Number = 1 name = Lucky marks =98.000000
ตัวอย่างที่ 2
ลองพิจารณาอีกตัวอย่างหนึ่งที่อธิบายการทำงานของพอยน์เตอร์ไปยังโครงสร้าง
#include<stdio.h>
struct person{
int age;
float weight;
};
int main(){
struct person *personPtr, person1;
personPtr = &person1;
printf("Enter age: ");
scanf("%d", &personPtr->age);
printf("Enter weight: ");
scanf("%f", &personPtr->weight);
printf("Displaying:\n");
printf("Age: %d\n", personPtr->age);
printf("weight: %f", personPtr->weight);
return 0;
} ผลลัพธ์
ให้เราเรียกใช้โปรแกรมข้างต้นที่จะให้ผลลัพธ์ดังต่อไปนี้ -
Enter age: 45 Enter weight: 60 Displaying: Age: 45 weight: 60.000000