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 कर सकते हैं. अपना कीमती समय देने के लिए धन्यवाद्

Add a Comment

Your email address will not be published. Required fields are marked *