पाठ 25 / 36

स्ट्रक्चर्स के ऐरे

रिकॉर्ड्स की सूची मॉडल करें, जैसे टेबल की पंक्तियाँ।

छात्रों की एक टेबल

समान आकार के कई रिकॉर्ड स्टोर करने के लिए स्ट्रक्चर को ऐरे के साथ जोड़ें।

struct Student {
    char name[20];
    int marks;
};

struct Student class[3] = {
    {"Ana", 88},
    {"Bilal", 76},
    {"Chen", 92}
};

for (int i = 0; i < 3; i++) {
    printf("%s: %d\n", class[i].name, class[i].marks);
}

Output:

Ana: 88
Bilal: 76
Chen: 92

कॉपी से बचने के लिए pointer से पास करें

बड़े स्ट्रक्चर (या स्ट्रक्चर के ऐरे) को value से पास करने पर हर बाइट कॉपी होता है। इसकी बजाय फंक्शन को pointer (struct Student *s) पास करें, और मेंबर एक्सेस के लिए s->field उपयोग करें।

त्वरित जाँच: जब `s` किसी स्ट्रक्चर का pointer हो, तो `s->field` का क्या मतलब है?

  • (*s).field का संक्षिप्त रूप
  • यह s और field की तुलना करता है
  • यह नया स्ट्रक्चर बनाता है
Answer

(*s).field का संक्षिप्त रूप — `->` एक ही चरण में pointer को डीरेफ़रेंस करता है और मेंबर एक्सेस करता है।