स्ट्रक्चर का पॉइंटर संपूर्ण स्ट्रक्चर का पता रखता है।
इसका उपयोग लिंक्ड लिस्ट, ट्री, ग्राफ आदि जैसे जटिल डेटा स्ट्रक्चर्स बनाने के लिए किया जाता है।
स्ट्रक्चर के मेंबर्स को एक विशेष ऑपरेटर जिसे एरो ऑपरेटर (->) कहा जाता है, का उपयोग करके एक्सेस किया जा सकता है।
घोषणा
C प्रोग्रामिंग में स्ट्रक्चर्स के पॉइंटर्स के लिए घोषणा निम्नलिखित है:
struct tagname *ptr;
उदाहरण: struct student *s;
एक्सेस करना
स्ट्रक्चर्स के पॉइंटर्स को कैसे एक्सेस करें, यह नीचे समझाया गया है:
ptr->membername;
उदाहरण: s->sno, s->sname, s->marks;
उदाहरण प्रोग्राम
निम्नलिखित प्रोग्राम स्ट्रक्चर्स के पॉइंटर्स के उपयोग को दर्शाता है:
#include <stdio.h>
struct student {
int sno;
char sname[30];
float marks;
};
int main() {
struct student s;
struct student *st;
printf("sno, sname, marks दर्ज करें: ");
scanf("%d%s%f", &s.sno, s.sname, &s.marks);
st = &s;
printf("छात्र का विवरण है:");
printf("Number = %d\n", st->sno);
printf("name = %s\n", st->sname);
printf("marks = %f\n", st->marks);
return 0;
}
आउटपुट
उपरोक्त प्रोग्राम को चलाने पर निम्नलिखित परिणाम प्राप्त होगा:
sno, sname, marks दर्ज करें: 1 Lucky 98 छात्र का विवरण है: 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("उम्र दर्ज करें: ");
scanf("%d", &personPtr->age);
printf("वजन दर्ज करें: ");
scanf("%f", &personPtr->weight);
printf("प्रदर्शित:\n");
printf("Age: %d\n", personPtr->age);
printf("Weight: %f", personPtr->weight);
return 0;
}
आउटपुट
उपरोक्त प्रोग्राम को चलाने पर निम्नलिखित परिणाम प्राप्त होगा:
उम्र दर्ज करें: 45 वजन दर्ज करें: 60 प्रदर्शित: Age: 45 Weight: 60.000000