Structure in C (Struct) / Declaration / Initialization / Usage
|इस Article में हम Structure in C के बारे में समझेंगे। और Struct से Related सभी Topic को इस Article में Cover किया गया हैं।
What is Structure in C ?
इस तरह के Data Type में हम अलग-अलग तरह के Data Type को Store कर सकते हैं । यह Heterogeneous Type होता हैं यानि की हम एक ही में int, char, float का उपयोग कर सकते हैं, इस की size जितने भी हमने Datatype का उपयोग किया हैं उनका Sum होती हैं ।
Declaration of Structure
Structure को इस प्रकार से Declare किया जाता हैं ।
struct Student
{
int sch_no; //Scholar No.
char section; //Section Name
int cls; //Class
} typedef Stud ;
Initialization of Structure
Structure को Initialize करने के लिए दो तरीके हैं आप दोनों में से कोई भी तरीके का उपयोग कर सकते हैं ।
stud s1; //Implicit initialization
stud s2 = {1, 'A', 5}; //Explicit initialization
stud s3 = {.section = 'B', .sch_no=3, .cls = 4 }; //Designated initialization
s1.sch_no = 2;
s1.section = 'B';
s1.cls = 5;
Get Value from Structure
Structure से वैल्यू को इस तरह से Read किया जाता हैं ।
printf("Value of s1.scho_no is :%d\n", s1.sch_no);
printf("Value of s1.section is :%c\n", s1.section);
printf("Value of s1.cls is :%d\n", s1.cls);
Value of s1.scho_no is :2
Value of s1.section is :B
Value of s1.cls is :5
Array of Structure in C
जैसा की हम जानते है की Array में हम एक जैसे Data Type की एक से अधिक value को Store कर रख सकते हैं। यदि हम किसी Structure का भी Array बनाना चाहे तो बना सकते हैं। और जैसे की हमें Array Declare करते समय किया था वैसे ही हमें Array of Structure के लिए करना हैं।
यहाँ पर हमने Structure का Array बनाया हैं और उसमे Value Assign कर Loop से Print किया हैं ।
stud s[2]; //Declare Array of Structure
s[0].sch_no = 3;
s[0].section = 'A';
s[0].cls = 1;
s[1].sch_no = 4;
s[1].section = 'C';
s[1].cls = 2;
for (int i=0; i<2; i++) // Print Value of Array Structure
{
printf("\n");
printf("Value of s[%d].scho_no is :%d\n", i, s[i].sch_no);
printf("Value of s[%d].section is :%c\n", i, s[i].section);
printf("Value of s[%d].cls is :%d\n", i, s[i].cls);
}
C Initialize Struct Array
- इस Example मे हमने सबसे पहले stud s[] declare किया है ।
- Next line मे Struct Array को Initialize किया हैं ।
Pointer to a Structure in C
जैसा की हम जानते हैं की Pointer Value को Store न करते हुए Variable के Address को Store करता हैं ठीक वैसा ही जब हमें किस Structure के Address को Point करना हो तो हम Pointer to a Structure का उपयोग करते हैं ।यहाँ पर हमने जो पहले S1 stud type Struct बनाया था उसी की वैल्यू को Pointer में ले कर प्रिंट करवाई हैं
stud *p = &s1;
printf("\n");
printf("Value of s1.scho_no is :%d\n", p->sch_no);
printf("Value of s1.section is :%c\n", p->section);
printf("Value of s1.cls is :%d\n", p->cls);
जब हम pointer का उपयोग करते हैं तब -> इस symbol से Inner Variable को Access कर सकते हैं ।
उपरोक्त सभी Program को एक साथ किया गया है
#include <stdio.h>
struct Student
{
int sch_no;
char section;
int cls;
} typedef stud;
void main()
{
stud s1; //Implicit initialization
stud s2 = {1, 'A', 5}; //Explicit initialization
stud s3 = {.section = 'B', .sch_no=3, .cls = 4 }; //Designated initialization
s1.sch_no = 2;
s1.section = 'B';
s1.cls = 5;
printf("Value of s1.scho_no is :%d\n", s1.sch_no);
printf("Value of s1.section is :%c\n", s1.section);
printf("Value of s1.cls is :%d\n", s1.cls);
// Example Array of Structure
stud s[2]; //Declare Array of Structure
s[0].sch_no = 3;
s[0].section = 'A';
s[0].cls = 1;
s[1].sch_no = 4;
s[1].section = 'C';
s[1].cls = 2;
for (int i=0; i<2; i++) // Print Value of Array Structure
{
printf("\n");
printf("Value of s[%d].scho_no is :%d\n", i, s[i].sch_no);
printf("Value of s[%d].section is :%c\n", i, s[i].section);
printf("Value of s[%d].cls is :%d\n", i, s[i].cls);
}
// Example Pointer Structure
stud *p = &s1;
printf("\n");
printf("Value of s1.scho_no is :%d\n", p->sch_no);
printf("Value of s1.section is :%c\n", p->section);
printf("Value of s1.cls is :%d\n", p->cls);
}
आशा हैं मुझे की आपको यह Article समझ में आ गया होगा , यदि किसी भी प्रकार का कोई Doubt हो तो आप Comment कर सकते हैं. अपना कीमती समय देने के लिए धन्यवाद्