एक संघ एक स्मृति स्थान है जिसे विभिन्न डेटा प्रकारों के कई चर द्वारा साझा किया जाता है।
सिंटैक्स
C प्रोग्रामिंग में यूनियनों के लिए पॉइंटर्स का सिंटैक्स इस प्रकार है -
union uniontag{
datatype member 1;
datatype member 2;
----
----
datatype member n;
}; उदाहरण
निम्नलिखित उदाहरण संरचना के संघ के उपयोग को दर्शाता है।
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 is a pointer to union p1
union pointer* p2 = &p1;
// Accessing union members using pointer
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 is a pointer to union p1
union pointer* p2 = &p1;
// Accessing union members using pointer
printf("%d %c", p2->num, p2->a);
return 0;
} आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
90 Z