एक संघ एक स्मृति स्थान है जिसे विभिन्न डेटा प्रकारों के कई चर द्वारा साझा किया जाता है।
सिंटैक्स
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