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