संरचना और संघ के बीच अंतर

विषय - सूची:

Anonim

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

संरचना सी प्रोग्रामिंग भाषा में एक उपयोगकर्ता-परिभाषित डेटा प्रकार है जो विभिन्न डेटा प्रकारों के तार्किक रूप से संबंधित डेटा आइटम को एक साथ जोड़ती है।

सभी संरचना तत्व सन्निहित स्मृति स्थानों पर संग्रहीत किए जाते हैं। संरचना प्रकार चर एक नाम के तहत अलग-अलग प्रकार के डेटा आइटम को एक से अधिक स्टोर कर सकते हैं।

इस ट्यूटोरियल में, आप सीखेंगे:

  • संरचना क्या है?
  • संघ क्या है?
  • घोषणा संरचना का सिंटैक्स
  • सी प्रोग्रामिंग में संरचना का उदाहरण
  • घोषित संघ का सिंटेक्स
  • C प्रोग्रामिंग में यूनियन का उदाहरण
  • संरचना बनाम। संघ
  • संरचना के लाभ
  • संघ के लाभ
  • संरचना का नुकसान
  • संघ का नुकसान

संघ क्या है?

संघ एक संरचना की तरह एक उपयोगकर्ता-परिभाषित डेटा प्रकार है। संघ विभिन्न प्रकारों और आकारों की वस्तुओं को एक साथ जोड़ता है। यूनियन वेरिएबल मेमोरी स्पेस को यूनियन के सबसे बड़े वेरिएबल को रखने के लिए स्पेस के बराबर आवंटित करता है। यह एक ही स्थान को साझा करने के लिए विभिन्न प्रकार की वस्तुओं की अनुमति देता है।

घोषणा संरचना का सिंटैक्स

struct [name of the structure]{type member1;type member2;type member3;};

संरचना को "संरचना" कीवर्ड और संरचना के नाम का उपयोग करके घोषित किया गया है। नंबर 1, नंबर 2, नंबर 3 संरचना के व्यक्तिगत सदस्य हैं। शरीर के हिस्से को अर्धविराम (;) के साथ समाप्त किया जाता है।

सी प्रोग्रामिंग में संरचना का उदाहरण

#include struct student {char name[60];int roll_no;float marks;} sdt;int main() {printf("Enter the following information:\n");printf("Enter student name: ");fgets(sdt.name, sizeof(sdt.name), stdin);printf("Enter student roll number: ");scanf("%d", & sdt. roll_no);printf("Enter students marks: ");scanf("%f", & sdt.marks);printf("The information you have entered is: \n");printf("Student name: ");printf("%s", sdt.name);printf("Student roll number: %d\n", sdt. roll_no);printf("Student marks: %.1f\n", sdt.marks);return 0;}

उपरोक्त कार्यक्रम में, छात्र नामक एक संरचना बनाई जाती है। इस संरचना में तीन डेटा सदस्य हैं: 1) नाम (स्ट्रिंग), 2) रोल_नो (पूर्णांक), और 3) अंक (फ्लोट)।

इसके बाद, छात्र की जानकारी संग्रहीत करने और उसे कंप्यूटर स्क्रीन पर प्रदर्शित करने के लिए एक स्ट्रक्चर वेरिएबल sdt बनाया जाता है।

आउटपुट:

निम्नलिखित जानकारी दर्ज करें:

छात्र का नाम दर्ज करें: जेम्स

छात्र रोल नंबर दर्ज करें: 21

छात्र अंक दर्ज करें: 67

आपके द्वारा दर्ज की गई जानकारी है:

छात्र का नाम: जॉन

छात्र का रोल नंबर: 21

छात्र अंक: 67.0

घोषित संघ का सिंटेक्स

union [name of union]{type member1;type member2;type member3;};

यूनियन को "यूनियन" कीवर्ड और यूनियन के नाम का उपयोग करके घोषित किया जाता है। नंबर 1, नंबर 2, नंबर 3 संघ के व्यक्तिगत सदस्य हैं। शरीर के हिस्से को अर्धविराम (;) के साथ समाप्त किया जाता है।

C प्रोग्रामिंग में यूनियन का उदाहरण

#include union item{int x;float y;char ch;};int main( ){union item it;it.x = 12;it.y = 20.2;it.ch = 'a';printf("%d\n", it.x);printf("%f\n", it.y);printf("%c\n", it.ch);return 0;}

आउटपुट:

1101109601

20.199892

उपरोक्त कार्यक्रम में, आप देख सकते हैं कि x और y के मान दूषित हो गए हैं। केवल चर ch अपेक्षित परिणाम प्रिंट करता है। ऐसा इसलिए है, क्योंकि संघ में, स्मृति स्थान सभी सदस्य डेटा प्रकारों के बीच साझा किया जाता है।

इसलिए, एकमात्र डेटा सदस्य जिसका मान वर्तमान में संग्रहीत है, मेमोरी स्पेस पर कब्जा कर लेगा। चर ch का मान अंतिम रूप से संग्रहीत किया गया था, इसलिए शेष चर का मान खो गया है।

संरचना बनाम। संघ

यहाँ संरचना और संघ के बीच महत्वपूर्ण अंतर है:

संरचना संघ
आप एक संरचना को परिभाषित करने के लिए एक संरचनात्मक कीवर्ड का उपयोग कर सकते हैं। आप एक यूनियन को परिभाषित करने के लिए एक यूनियन कीवर्ड का उपयोग कर सकते हैं।
संरचना के भीतर प्रत्येक सदस्य को एक अद्वितीय मेमोरी स्थान सौंपा गया है। संघ में, सभी डेटा सदस्यों द्वारा एक मेमोरी स्थान साझा किया जाता है।
एक डेटा सदस्य के मूल्य को बदलने से संरचना में अन्य डेटा सदस्यों को प्रभावित नहीं किया जाएगा। एक डेटा सदस्य के मूल्य को बदलने से यूनियन में अन्य डेटा सदस्यों का मूल्य बदल जाएगा।
यह आपको एक साथ कई सदस्यों को इनिशियलाइज़ करने में सक्षम बनाता है। यह आपको संघ के केवल पहले सदस्य को आरंभ करने में सक्षम बनाता है।
संरचना का कुल आकार प्रत्येक डेटा सदस्य के आकार का योग है। संघ का कुल आकार सबसे बड़े डेटा सदस्य का आकार है।
यह मुख्य रूप से विभिन्न डेटा प्रकारों के भंडारण के लिए उपयोग किया जाता है। यह मुख्य रूप से उपलब्ध कई डेटा प्रकारों में से एक को संग्रहीत करने के लिए उपयोग किया जाता है।
यह आंतरिक मापदंडों में लिखे गए प्रत्येक सदस्य के लिए स्थान रखता है। यह आंतरिक मापदंडों में लिखे गए उच्चतम आकार वाले सदस्य के लिए स्थान रखता है।
आप एक बार में किसी भी सदस्य को पुनः प्राप्त कर सकते हैं। आप संघ में एक समय में एक सदस्य तक पहुँच सकते हैं।
यह लचीली सरणी का समर्थन करता है। यह एक लचीली सरणी का समर्थन नहीं करता है।

संरचना के लाभ

यहाँ संरचना का उपयोग करने के लिए लाभ / लाभ हैं:

  • संरचनाएं एक ही स्थान पर एक ही विषय में एक से अधिक डेटा एकत्रित करती हैं।
  • जब आप समान डेटा प्रकारों और मापदंडों जैसे पहले नाम, अंतिम नाम, आदि का डेटा इकट्ठा करना चाहते हैं तो यह सहायक होता है।
  • इसे बनाए रखना बहुत आसान है क्योंकि हम एकल नाम का उपयोग करके पूरे रिकॉर्ड का प्रतिनिधित्व कर सकते हैं।
  • संरचना में, हम एकल पैरामीटर का उपयोग करके किसी भी फ़ंक्शन के रिकॉर्ड का पूरा सेट पास कर सकते हैं।
  • आप समान प्रकार के साथ अधिक रिकॉर्ड संग्रहीत करने के लिए संरचना की एक सरणी का उपयोग कर सकते हैं।

संघ के लाभ

यहां, संघ का उपयोग करने के लिए लाभ / लाभ हैं:

  • यह संरचना की तुलना में कम स्मृति रखता है।
  • जब आप संघ का उपयोग करते हैं, तो केवल अंतिम चर को सीधे एक्सेस किया जा सकता है।
  • यूनियन का उपयोग तब किया जाता है जब आपको दो या अधिक डेटा सदस्यों के लिए एक ही मेमोरी लोकेशन का उपयोग करना होता है।
  • यह आपको केवल एक डेटा सदस्य का डेटा रखने में सक्षम बनाता है।
  • इसका आवंटित स्थान डेटा सदस्य के अधिकतम आकार के बराबर है।

संरचना का नुकसान

यहां संरचना का उपयोग करने के लिए विपक्ष / कमियां हैं:

  • यदि आईटी परियोजना की जटिलता सीमा से परे हो जाती है, तो इसे प्रबंधित करना कठिन हो जाता है।
  • एक कोड में एक डेटा संरचना का परिवर्तन कई अन्य स्थानों पर परिवर्तन की आवश्यकता है। इसलिए, परिवर्तनों को ट्रैक करना कठिन हो जाता है।
  • संरचना धीमी है क्योंकि इसमें सभी डेटा के लिए भंडारण स्थान की आवश्यकता होती है।
  • आप संरचना में एक समय में किसी भी सदस्य को पुनः प्राप्त कर सकते हैं, जबकि आप संघ में एक समय में एक सदस्य तक पहुंच सकते हैं।
  • संरचना आंतरिक मापदंडों में लिखे गए प्रत्येक सदस्य के लिए जगह घेरती है जबकि संघ आंतरिक सदस्य मापदंडों में लिखे गए उच्चतम आकार वाले सदस्य के लिए स्थान रखता है।
  • संरचना लचीली सरणी का समर्थन करती है। संघ एक लचीली सरणी का समर्थन नहीं करता है।

संघ का नुकसान

यहां, संघ का उपयोग करने के लिए विपक्ष / कमियां हैं:

  • आप एक समय में केवल एक यूनियन सदस्य का उपयोग कर सकते हैं।
  • एक समय में सभी यूनियन चर को अलग-अलग मानों के साथ आरंभ या उपयोग नहीं किया जा सकता है।
  • संघ अपने सभी सदस्यों के लिए एक सामान्य भंडारण स्थान प्रदान करता है।

प्रमुख स्रोत:

  • संरचना के भीतर प्रत्येक सदस्य को एक अद्वितीय स्मृति स्थान दिया जाता है, जबकि संघ में एक मेमोरी स्थान सभी डेटा सदस्यों द्वारा साझा किया जाता है।
  • एक डेटा सदस्य के मूल्य को बदलने से संरचना में अन्य डेटा सदस्यों को प्रभावित नहीं किया जाएगा, जबकि एक डेटा सदस्य के मूल्य को बदलने से यूनियन में अन्य डेटा सदस्यों के मूल्य में बदलाव होगा।
  • संरचना का उपयोग मुख्य रूप से विभिन्न डेटा प्रकारों के भंडारण के लिए किया जाता है, जबकि संघ मुख्य रूप से कई डेटा प्रकारों में से एक के भंडारण के लिए उपयोग किया जाता है।
  • संरचना में, आप किसी भी सदस्य को यूनियन में एक समय में पुनः प्राप्त कर सकते हैं, आप एक समय में एक सदस्य तक पहुंच सकते हैं।
  • संरचना लचीली सरणी का समर्थन करती है जबकि संघ एक लचीली सरणी का समर्थन नहीं करता है।