Structure in C Programming in Hindi

इस tutorial में हम समझेंगे की C programming में Structure (struct) क्या होता है और सीखेंगे की कैसे आप अपने C programs में structure declaration, structure initialization और structure में input output कर सकते हो.

C programming में जब हमें same data types की बहुत सारी values को single unit के तौर पर group करके उन सभी values को single name से use करना हो तब हम Arrays का use करते हैं.

लेकिन कभी-कभी C programs में हमें different data types की values को single unit के तौर पर group करके उन सभी values को single name से use करना होता है.

जैसे की हमें students का record रखना है जिसमें उनका name (string), age (int) और cgpa (float) store करना है.

इस तरह के record को store करने के लिए आपको अलग-अलग data types (string, int, float) के 3 अलग-अलग arrays बनाने पड़ेंगे और फिर उनमें students के data को store करना होगा.

लेकिन इस तरह से अलग-अलग arrays में students का data रखने में problem ये है हमारा हर student का data जैसे उसका name, age और cgpa एक single entity के तौर पर group नहीं होगा.

जिसकी वजह से आपको अलग-अलग student के data को manage करने में थोड़ी सी problem आएगी और इसी problem से खत्म करने के लिए C programming में structures का use होता है.

C Programming में Structure क्या है?

Structure एक user defined data type है जिसे हम अलग-अलग data types के variables को combine करके एक single data type की तरह use करते हैं.

अब क्योंकि structure data type अलग-अलग data types के variables का group करके बनाया जाता है इसलिए structure के single variable में अलग-अलग data types के data को store कर सकते हो.

जैसे ऊपर हम students का name (string), age (int) और cgpa (float) को इस तरह से store करना चाहते थे की हर student के record (name, age, cgpa) को group करके single unit के तौर पर use कर सकें.

C Programming में इस तरह के काम के लिए structure data type के variables या array का use करना best choice होता है.

Define Structures in C Programming

Structure declare (define) करने के लिए हम “struct” keyword का use करते हैं. struct keyword की help से आप अलग-अलग data types के variable को group करके एक नया data type create करते हो.

इसलिए structure को user (programmers) defined data type या derived data type कहा जाता है.

Structure Declaration Syntax:

struct structure_name
{
    data_type member1;
    data_type member2;
    ...........
    ...........
    data_type member(n);
};

Structure declare करते वक्त struct keyword के बाद हम अपनी मर्जी से C Identifier rules को follow करते हुए structure को एक name देते हैं.

Structure name देने के बाद हम structure के curly braces { } के अंदर हम अलग-अलग data types के variable declare करते हैं और इन variables को हम structure members कहते हैं.

Structure members declare करना ठीक वैसे ही होता है जैसे अभी तक आप variables और arrays declare करते आए हैं.

Structure declaration के last में यानी closing curly braces } के बाद semicolon ; लगाना जरूरी होता है.

आप अपने C programs में structure को variables और arrays की तरह global scope या local scope में define कर सकते.

अगर आप उसे किसी भी function के बाहर यानी global scope में declare करोगे तो उसे किसी भी function में use कर सकते हो और अगर आप उसे function के अंदर यानी local scope में declare करते हो तो आप उसे सिर्फ उसी function के अंदर use कर सकते हो.

Structure Declaration Example 1:

struct students
{
    int roll;
    char name[20];
    float cgpa;
};

Structure Declaration Example 2:

struct books
{
    char bname[20], aname[20];
    int price;
};

Structure Variable Declaration in C Programming

ऊपर हमने सिखा की कैसे हम struct keyword की help से structure data type define कर सकते हैं लेकिन सिर्फ structure define करने से आप उसे अपने program में use नहीं कर सकते.

क्योंकि कोई भी data type तब तक useless है जब तक आप उस data type के variables create नहीं करते. इसलिए अब हम structure के variables declare करना सीखेंगे.

आप अपने C programs में दो तरह से structure variables declare कर सकते हो. पहला structure declaration के वक्त ही और दूसरा structure declaration के बाद.

Structure Variables Declaration Structure Declaration के साथ

struct structure_name
{
    data_type member1;
    data_type member2;
    ...........
    ...........
    data_type member(n);
}variable1, variable, ...;

Example:

struct students
{
    int roll;
    char name[20];
    float cgpa;
}stu1, stu2;

Structure Variables Declaration Structure Declaration के बाद

struct structure_name variable1, variable2, ... ;

Example:

struct students
{
    int roll;
    char name[20];
    float cgpa;
};

struct students stu1, stu2;

जैसा की आप ऊपर देख सकते हो मैंने structure variables declare करने के दोनों तरीकों का syntax और example बताया है.

Structure variables declaration के दोनों examples हमने 2 structure variables stu1 और stu2 को declare किया है. आप इसी तरह और भी variables declare कर सकते हो.

Structure के सभी variables structure के सभी members को hold करते हैं और इन्हीं variables की help से आप structure members को access करते हैं.

Structure Variables से Structure Members को Access कैसे करें?

Structure members को initialize करने के लिए, उनमें users से input लेने के लिए, उन्हें print कराने के लिए या किसी अन्य काम के लिए हम structure members को access करने के लिए हम structure variables का use करते हैं.

Structure members को किसी भी काम के लिए access करने के लिए हम structure variables के साथ dot operator ( . ) जिसे हम member access operator का use करते हैं.

Syntax:

structure_variable.member_name;

Structure Members Initialize कैसे करें?

आप structure declaration के वक्त ही उसके members (variables) को value assign (initialize) नहीं कर सकते और अगर आप ऐसा करते हैं तो आपको compile time पर error show होगा.

Structure members को structure declaration के बाद structure variables की help से initialize किया जा सकता है.

Structure Members Initialization Example Program:

struct students
{
    int roll;
    float cgpa;
};

struct students stu1;

int main()
{
    //members initialization
    stu1.roll = 12;
    stu1.cgpa = 8.9;    
    
    return 0;
}

ऊपर example program में हमने structure variables को main function के बाहर यानी global scope में declare किया है. 

आप structure variables को main function के अंदर यानी local scope भी declare कर सकते हो.

Structure Members Input Output कैसे करें?

जैसे अभी तक आप variables में input लेते आए हो या उन्हें print करते हुए आए हो लगभग ठीक वैसे ही structure members को printf() function की help से screen (console) पर print करा सकते हो और scanf() function की help से उनमें users input ले सकते हो.

आपको बस हर members के लिए सही format specifiers का use करना है और members को access करने के लिए structure variables को dot operator के साथ use करना है.

C Program to Store Records of Students in Structure:

#include <stdio.h>
struct students
{
    int roll;
    char name[20];
    float cgpa;
};

int main()
{
    struct students stu1;

    printf("Enter Student Roll No. : ");
    scanf("%d",&stu1.roll);

    printf("Enter Student Name : ");
    scanf("%s",stu1.name);

    printf("Enter Student CGPA : ");
    scanf("%f",&stu1.cgpa);

    printf("\nStudent Roll No. : %d",stu1.roll);
    printf("\nStudent Name : %s",stu1.name);
    printf("\nStudent CGPA : %f",stu1.cgpa);

    return 0;
}

Output:

Enter Student Roll No. : 12
Enter Student Name : Rohit
Enter Student CGPA : 7.8

Student Roll No. : 12
Student Name : Rohit
Student CGPA : 7.800000

Structure Array: Declaration, Input and Output

अगर आपको सिर्फ 1 या 2 students का record store करना है तो आपका structure variables से काम चल जाएगा. 

लेकिन अगर आपको 50-100 students का record store करना हो तो हर students के लिए अलग-अलग variables declare करने से अच्छा है की उतने size का एक structure array बना लें.

Structure array का हर element structure variable की work करेगा यानी आप structure array के हर element में student record (roll no, name, cgpa) store कर सकते हो.

Structure array declaration, array में input लेना या उसे print कराना. सब process लगभग वैसे ही होगा जैसा हम normal array के साथ करते आये हैं.

नीचे structure array के example program में हमने 3 size का structure array create किया है आप अपनी मर्जी से कितने size का array बना सकते हो.

#include <stdio.h>
struct students
{
    int roll;
    char name[20];
    float cgpa;
};

int main()
{
    struct students stu[3];
    int i;

    for(i=0;i<3;i++)
    {
        printf("\nEnter Student Roll No. : ");
        scanf("%d",&stu[i].roll);

        printf("Enter Student Name : ");
        scanf("%s",stu[i].name);

        printf("Enter Student CGPA : ");
        scanf("%f",&stu[i].cgpa);
    }

    for(i=0;i<3;i++)
    {
        printf("\nStudent Roll No. : %d, Name : %s, CGPA : %f",stu[i].roll,stu[i].name,stu[i].cgpa);
    }

    return 0;
}

Output:

Enter Student Roll No. : 1
Enter Student Name : Karan
Enter Student CGPA : 6.7

Enter Student Roll No. : 2
Enter Student Name : Rohit
Enter Student CGPA : 7.6

Enter Student Roll No. : 3
Enter Student Name : Aman
Enter Student CGPA : 8.8

Student Roll No. : 1, Name : Karan, CGPA : 6.700000
Student Roll No. : 2, Name : Rohit, CGPA : 7.600000
Student Roll No. : 3, Name : Aman, CGPA : 8.800000

Typedef Keyword with Structure

C language में आप tyedef keyword की help से किसी भी primitive या user defined data types को नया (alias) name assign कर सकते हो.

Typedef keyword क्या है और C programming में typedef keyword को कैसे use करते हैं इसकी अधिक जानकारी के लिए नीचे दिए गए link पर click करके tutorial जरूर पढ़ें.

Read: Typedef Keyword in C Programming in Hindi 

typedef keyword का use ज्यादातर हम strutures के साथ ही करते हैं क्योंकि इसकी help से आप structure data type (name) को short कर सकते हो जिससे program की readability improve होती है.

typedef syntax:

typedef old_name new_name;

Variable declaration without using typedef:

#include <stdio.h>
struct records
{
    int roll;
    char name[20];
    float cgpa;
};

int main()
{
    struct records stu1, stu2, stu3;
    
    //Your Code Here
    //Your Code Here
    
    return 0;
}

Variable declaration using typedef:

#include <stdio.h>
struct records
{
    int roll;
    char name[20];
    float cgpa;
};

typedef struct records students;

int main()
{
     students stu1, stu2, stu3;


    //Your Code Here
    //Your Code Here

    return 0;
}

Explanation:

जैसा की आप ऊपर example में देख सकते हो की हमारे structure data type का name struct records था जिसे हमने typedef function की help से हमने एक नया name students assign कर दिया है और फिर इसी name से हमने stu1, stu2 और stu3 variables create किए हैं.

What’s Next: इस tutorial में हमने C Structures के बारे में पढ़ा. Next tutorial में हम C programming में Pointers का use करना सीखेंगे