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

C भाषा में यूनियन के पॉइंटर्स को समझें


यूनियन एक मेमोरी लोकेशन है जिसे अलग-अलग डेटा टाइप्स के कई वेरिएबल्स द्वारा साझा किया जाता है।

सिंटैक्स

C प्रोग्रामिंग में यूनियन के पॉइंटर्स का सिंटैक्स निम्नलिखित है:

union uniontag {
    datatype member1;
    datatype member2;
    // ...
    datatype memberN;
};

उदाहरण

निम्नलिखित उदाहरण यूनियन के उपयोग को दर्शाता है:

union sample {
    int a;
    float b;
    char c;
};

यूनियन वेरिएबल की घोषणा

यूनियन वेरिएबल की घोषणा तीन प्रकार से की जा सकती है:

प्रकार 1

union sample {
    int a;
    float b;
    char c;
} s;

प्रकार 2

union {
    int a;
    float b;
    char c;
} s;

प्रकार 3

union sample {
    int a;
    float b;
    char c;
};
union sample s;
  • जब यूनियन घोषित किया जाता है, तो कंपाइलर स्वचालित रूप से यूनियन में वेरिएबल्स को रखने के लिए सबसे बड़े आकार का वेरिएबल टाइप बनाता है।

  • किसी भी समय केवल एक वेरिएबल को संदर्भित किया जा सकता है।

  • यूनियन मेंबर को एक्सेस करने के लिए स्ट्रक्चर के समान सिंटैक्स का उपयोग किया जाता है।

  • मेंबर्स को एक्सेस करने के लिए डॉट ऑपरेटर (.) का उपयोग किया जाता है।

  • पॉइंटर का उपयोग करके मेंबर्स को एक्सेस करने के लिए एरो ऑपरेटर (->) का उपयोग किया जाता है।

हमारे पास यूनियन के पॉइंटर्स हो सकते हैं और स्ट्रक्चर की तरह ही एरो ऑपरेटर (->) का उपयोग करके मेंबर्स को एक्सेस कर सकते हैं।

उदाहरण: C प्रोग्रामिंग में यूनियन के पॉइंटर्स का उपयोग

#include <stdio.h>

union pointer {
    int num;
    char a;
};

int main() {
    union pointer p1;
    p1.num = 75;
    
    // p2, यूनियन p1 का पॉइंटर है
    union pointer *p2 = &p1;
    
    // पॉइंटर का उपयोग करके यूनियन मेंबर्स को एक्सेस करना
    printf("%d %c", p2->num, p2->a);
    
    return 0;
}

आउटपुट

उपरोक्त प्रोग्राम को निष्पादित करने पर निम्नलिखित परिणाम प्राप्त होता है:

75 K

उदाहरण 2: अलग इनपुट के साथ समान उदाहरण

#include <stdio.h>

union pointer {
    int num;
    char a;
};

int main() {
    union pointer p1;
    p1.num = 90;
    
    // p2, यूनियन p1 का पॉइंटर है
    union pointer *p2 = &p1;
    
    // पॉइंटर का उपयोग करके यूनियन मेंबर्स को एक्सेस करना
    printf("%d %c", p2->num, p2->a);
    
    return 0;
}

आउटपुट

उपरोक्त प्रोग्राम को निष्पादित करने पर निम्नलिखित परिणाम प्राप्त होता है:

90 Z

  1. C प्रोग्रामिंग भाषा में पॉइंटर्स के ऐरे को समझें C प्रोग्रामिंग भाषा में पॉइंटर्स के ऐरे को समझें

    पॉइंटर एक वेरिएबल है जो दूसरे वेरिएबल का पता स्टोर करता है। विशेषताएं पॉइंटर मेमोरी स्पेस बचाता है। सीधे मेमोरी लोकेशन एक्सेस के कारण पॉइंटर का एक्जीक्यूशन टाइम तेज होता है। पॉइंटर्स की मदद से, मेमोरी को कुशलता से एक्सेस किया जाता है, यानी मेमोरी को डायनामिकली एलोकेट और डीएलोकेट किया जाता है। पॉइ

  1. C भाषा में यूनियन टू पॉइंटर (Union to Pointer) C भाषा में यूनियन टू पॉइंटर (Union to Pointer)

    यूनियन (Union) क्या है? यूनियन एक यूजर-डिफाइंड डेटा प्रकार है जो एक ही मेमोरी स्थान को विभिन्न डेटा प्रकारों के सदस्यों के लिए साझा करने की अनुमति देता है। किसी भी समय केवल एक सदस्य ही मान रख सकता है। यूनियन की घोषणा union यूनियन_नाम { डेटा_प्रकार सदस्य1; डेटा_प्रकार सदस्य2; // ... };

  1. C भाषा में पॉइंटर एक्सेस करने की अवधारणा C भाषा में पॉइंटर एक्सेस करने की अवधारणा

    पॉइंटर घोषणा, प्रारंभिकरण और एक्सेस 1. सामान्य चर int qty = 179; // मेमोरी में: पता 1000 पर मान 179 संग्रहीत 2. पॉइंटर घोषणा int *p; // p एक पॉइंटर चर है जो int का पता रख सकता है 3. पॉइंटर प्रारंभिकरण int qty = 175; int *p; p = &qty; // एड्रेस-ऑफ ऑपरेटर (&) से पता प्राप्त करें मेमोरी आर