पॉइंटर टू स्ट्रक्चर एक्सेस करना
पॉइंटर टू स्ट्रक्चर पूरे स्ट्रक्चर का एड्रेस रखता है। मेंबर्स एक्सेस करने के लिए एरो ऑपरेटर (->) उपयोग करें।
घोषणा और आरंभीकरण
struct tagname *ptr;
struct student *s;
एक्सेस सिंटैक्स
ptr->membername;
// उदाहरण:
s->sno, s->sname, s->marks
उदाहरण 1: ऐरे इनसाइड स्ट्रक्चर
#include <stdio.h>
struct classroom {
int students[7];
};
int main() {
struct classroom clr = {2, 3, 5, 7, 11, 13};
int *ptr;
ptr = (int *)&clr;
printf("%d", *(ptr + 4)); // 5वां एलिमेंट (0-आधारित)
return 0;
}
आउटपुट
11
व्याख्या
पॉइंटर ptr ऑब्जेक्ट clr के पहले मान (2) का एड्रेस रखता है। पॉइंटर को 4 से इन्क्रीमेंट करने पर 5वें एलिमेंट (11) का मान मिलता है।
*(ptr + 0) = 2 *(ptr + 1) = 3 *(ptr + 2) = 5 *(ptr + 3) = 7 *(ptr + 4) = 11 *(ptr + 5) = 13
उदाहरण 2: स्टूडेंट स्ट्रक्चर
#include <stdio.h>
struct student {
int sno;
char sname[30];
float marks;
};
int 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("Student details:\n");
printf("Number = %d\n", st->sno);
printf("Name = %s\n", st->sname);
printf("Marks = %f\n", st->marks);
return 0;
}
आउटपुट
Enter sno, sname, marks: 1 bhanu 69 Student details: Number = 1 Name = bhanu Marks = 69.000000