Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C भाषा में संरचना (Structure) का उदाहरण प्रोग्राम

संरचना (Structure) क्या है?

संरचना विभिन्न डेटा प्रकार के चरों का एक संग्रह है, जिन्हें एक ही नाम के तहत समूहीकृत किया जाता है। यह उपयोगकर्ता-परिभाषित डेटा प्रकार बनाने की अनुमति देती है।

घोषणा और प्रारंभिकरण

सामान्य रूप

struct टैगनाम {
    डेटा_प्रकार सदस्य1;
    डेटा_प्रकार सदस्य2;
    ...
    डेटा_प्रकार सदस्यn;
};

उदाहरण: पुस्तक संरचना

struct Book {
    int pages;
    char author[30];
    float price;
};

संरचना चर घोषित करने के तीन तरीके

तरीका 1: घोषणा के साथ चर

struct Book {
    int pages;
    char author[30];
    float price;
} b;

तरीका 2: अनाम संरचना

struct {
    int pages;
    char author[30];
    float price;
} b;

तरीका 3: अलग घोषणा (सबसे आम)

struct Book {
    int pages;
    char author[30];
    float price;
};

struct Book b;  // चर घोषणा

प्रारंभिकरण के तरीके

विधि 1: घोषणा के साथ प्रारंभिकरण

struct Book {
    int pages;
    char author[30];
    float price;
} b = {100, "बालू", 325.75};

विधि 2: अलग प्रारंभिकरण

struct Book {
    int pages;
    char author[30];
    float price;
};

struct Book b = {100, "बालू", 325.75};

विधि 3: सदस्य ऑपरेटर (डॉट ऑपरेटर) का उपयोग करके


struct Book {
    int pages;
    char author[30];
    float price;
};

struct Book b;
b.pages = 100;
strcpy(b.author, "बालू");
b.price = 325.75;

विधि 4: scanf फ़ंक्शन का उपयोग करके (रनटाइम इनपुट)


struct Book {
    int pages;
    char author[30];
    float price;
};

struct Book b;
scanf("%d", &b.pages);
scanf("%s", b.author);  // स्ट्रिंग के लिए & नहीं
scanf("%f", &b.price);

पूर्ण प्रोग्राम: रनटाइम इनपुट और आउटपुट

#include <stdio.h>
#include <string.h>

struct Book {
    int pages;
    char author[30];
    float price;
};

int main() {
    struct Book b;
    
    printf("पुस्तक के पृष्ठ, लेखक, कीमत दर्ज करें: ");
    scanf("%d %s %f", &b.pages, b.author, &b.price);
    
    printf("\nपुस्तक का विवरण:\n");
    printf("पृष्ठ: %d\n", b.pages);
    printf("लेखक: %s\n", b.author);
    printf("कीमत: %.2f\n", b.price);
    
    return 0;
}

उन्नत उदाहरण: लिंक्ड लिस्ट नोड के रूप में संरचना

#include <stdio.h>

struct Node {
    struct Node *prev;
    int data;
    struct Node *next;
};

int main() {
    struct Node a, b, c, d;
    int x = 100;
    
    // नोड्स को लिंक करें: a <-> b <-> c <-> d (सर्कुलर)
    a.data = 0; a.prev = &d; a.next = &b;
    b.data = 1; b.prev = &a; b.next = &c;
    c.data = 2; c.prev = &b; c.next = &d;
    d.data = 3; d.prev = &c; d.next = &a;
    
    // जटिल पॉइंटर श्रृंखला: a.next->next->prev->next->data
    // a.next = b, b.next = c, c.prev = b, b.next = c, c.data = 2
    x = a.next->next->prev->next->data;
    
    printf("%d\n", x);  // आउटपुट: 2
    
    return 0;
}

आउटपुट

2

महत्वपूर्ण बिंदु

  • . (डॉट ऑपरेटर) संरचना चर के साथ सदस्य एक्सेस के लिए
  • -> (एरो ऑपरेटर) संरचना पॉइंटर के साथ सदस्य एक्सेस के लिए
  • strcpy() स्ट्रिंग कॉपी के लिए आवश्यक (string.h से)
  • संरचनाएं फ़ंक्शन में मान द्वारा या संदर्भ द्वारा पारित की जा सकती हैं
  • typedef का उपयोग करके संक्षिप्त नाम बना सकते हैं: typedef struct Book Book;
  1. C भाषा में संरचना अवधारणा का उपयोग करके बिट फ़ील्ड की व्याख्या C भाषा में संरचना अवधारणा का उपयोग करके बिट फ़ील्ड की व्याख्या

    बिट फ़ील्ड का उपयोग वेरिएबल के आकार को बिट्स के संदर्भ में निर्दिष्ट करने के लिए किया जाता है। आमतौर पर, इसे एक संरचना के अंदर परिभाषित किया जाता है। बिट फ़ील्ड: 1 बाइट = 8 बिट्स उदाहरण के लिए, नीचे एक उदाहरण समझाया गया है: Struct info{ int x:2; }; यहां, x 2 बिट्स पर कब्जा करता है। बिट फ़ील

  1. - C प्रोग्राम: सेमीकोलन के बिना "Tutorials Point" प्रिंट करें

    किसी भी स्ट्रिंग को सेमीकोलन के बिना प्रिंट करने के लिए, हमें यह समझना होगा कि स्टैंडर्ड आउटपुट कैसे काम करता है और सेमीकोलन का उपयोग क्यों किया जाता है। सेमीकोलन एक एंड-ऑफ-लाइन स्टेटमेंट है जो प्रोग्राम को बताता है कि लाइन यहीं समाप्त होती है। यहां उपयोग किया जाने वाला स्टैंडर्ड प्रिंट स्टेटमेंट pr

  1. - C में fwrite() और fread() का उपयोग करके स्ट्रक्चर को फाइल में पढ़ना/लिखना

    C में फाइल में लिखने के लिए fwrite() और fread() का उपयोग किया जाता है। fwrite() सिंटैक्स fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream) जहां ptr - लिखे जाने वाले एलिमेंट्स की सरणी का पॉइंटर size - लिखे जाने वाले प्रत्येक एलिमेंट का आकार बाइट्स में nmemb - एलिमेंट्स की संख्या, प्