संरचना का सूचक संपूर्ण संरचना का जोड़ रखता है।
इसका उपयोग जटिल डेटा संरचनाएं जैसे लिंक्ड सूचियां, पेड़, ग्राफ़ इत्यादि बनाने के लिए किया जाता है।
संरचना के सदस्यों को एक विशेष ऑपरेटर का उपयोग करके एक्सेस किया जा सकता है जिसे एरो ऑपरेटर ( -> ) कहा जाता है।
घोषणा
सी प्रोग्रामिंग में पॉइंटर्स टू स्ट्रक्चर्स के लिए घोषणा निम्नलिखित है -
struct tagname *ptr;
उदाहरण के लिए - स्ट्रक्चर स्टूडेंट *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