सी संरचना (संरचनाएं)

इस ट्यूटोरियल में, आप C प्रोग्रामिंग में संरचनात्मक प्रकारों के बारे में जानेंगे। आप उदाहरणों की सहायता से संरचनाओं को परिभाषित करना और उनका उपयोग करना सीखेंगे।

सी प्रोग्रामिंग में, एक संरचना (या संरचना) एक नाम के तहत चर (विभिन्न प्रकार के हो सकते हैं) का एक संग्रह है।

संरचनाओं को कैसे परिभाषित करें?

इससे पहले कि आप संरचना चर बना सकें, आपको इसके डेटा प्रकार को परिभाषित करने की आवश्यकता है। एक संरचना को परिभाषित करने के लिए, structकीवर्ड का उपयोग किया जाता है।

संरचना का सिंटैक्स

 संरचना संरचना नाम (डेटा टाइप सदस्य 1; डेटा टाइप सदस्य 2;…); 

यहाँ एक उदाहरण है:

 स्ट्रक्चर पर्सन (चार नाम; 50); इंट सिटनो; फ्लोट सैलरी;); 

यहां, एक व्युत्पन्न प्रकार struct Personको परिभाषित किया गया है। अब, आप इस प्रकार के चर बना सकते हैं।

संरचनात्मक चर बनाएँ

जब एक संरचनात्मक प्रकार घोषित किया जाता है, तो कोई भंडारण या मेमोरी आवंटित नहीं की जाती है। किसी दिए गए संरचना प्रकार की स्मृति को आवंटित करने और इसके साथ काम करने के लिए, हमें चर बनाने की आवश्यकता है।

यहां बताया गया है कि हम संरचना चर कैसे बनाते हैं:

स्ट्रक्चर पर्सन (चार नाम; 50); इंट सिटनो; फ्लोट सैलरी;); int main () (व्यक्ति से संबंधित व्यक्ति 1, व्यक्ति 2, पी (20); वापसी 0;)

एक संरचनात्मक चर बनाने का दूसरा तरीका है:

 स्ट्रक्चर पर्सन (चार नाम; 50; इंट सिटनो; फ्लोट सैलरी;) व्यक्ति 1, व्यक्ति 2, पी (20); 

दोनों मामलों में, दो चर person1, person2 और एक सरणी चर p प्रकार के 20 तत्व struct Personबनाए जाते हैं।

किसी संरचना के सदस्यों तक पहुँचना

किसी संरचना के सदस्यों तक पहुँचने के लिए दो प्रकार के ऑपरेटरों का उपयोग किया जाता है।

  1. . - सदस्य ऑपरेटर
  2. -> - संरचना सूचक ऑपरेटर (अगले ट्यूटोरियल में चर्चा की जाएगी)

मान लीजिए, आप person2 के वेतन का उपयोग करना चाहते हैं। यहाँ आप इसे कैसे कर सकते हैं।

 person2.salary

उदाहरण: दो दूरियां जोड़ें

 // Program to add two distances (feet-inch) #include struct Distance ( int feet; float inch; ) dist1, dist2, sum; int main() ( printf("1st distance"); printf("Enter feet: "); scanf("%d", &dist1.feet); printf("Enter inch: "); scanf("%f", &dist1.inch); printf("2nd distance"); printf("Enter feet: "); scanf("%d", &dist2.feet); printf("Enter inch: "); scanf("%f", &dist2.inch); // adding feet sum.feet = dist1.feet + dist2.feet; // adding inches sum.inch = dist1.inch + dist2.inch; // changing to feet if inch is greater than 12 while (sum.inch>= 12) ( ++sum.feet; sum.inch = sum.inch - 12; ) printf("Sum of distances = %d\'-%.1f "", sum.feet, sum.inch); return 0; )

आउटपुट

 पहली दूरी दर्ज करें पैर: 12 दर्ज इंच: 7.9 दूसरी दूरी पैर दर्ज करें: 2 दर्ज इंच: 9.8 दूरी का योग = 15'-5.7 "

कीवर्ड टाइपिफ़

हम typedefडेटा प्रकारों के लिए एक उपनाम नाम बनाने के लिए कीवर्ड का उपयोग करते हैं। आमतौर पर इसका उपयोग चर घोषित करने के सिंटैक्स को सरल बनाने के लिए संरचनाओं के साथ किया जाता है।

यह कोड

संरचना दूरी (अंतर फीट; फ्लोट इंच;); int main () (स्ट्रक्चर डिस्टेंस d1, d2;)

के बराबर है

टाइप्डिफ़ संरचना दूरी (इंट फीट; फ्लोट इंच;) दूरियाँ; int main () (डिस्टेंस d1, d2;)

नेस्टेड स्ट्रक्चर्स

आप सी प्रोग्रामिंग में एक संरचना के भीतर संरचनाएं बना सकते हैं। उदाहरण के लिए,

संरचना जटिल (इंट कल्पना; फ्लोट रियल;); संरचना संख्या (संरचना जटिल COMP; int पूर्णांक;) num1, num2;

मान लीजिए, आप num2 चर की कल्पना को 11 पर सेट करना चाहते हैं। यहां बताया गया है कि आप यह कैसे कर सकते हैं:

 num2.comp.imag = 11; 

क्यों सी में संरचना?

मान लीजिए, आप किसी व्यक्ति के बारे में जानकारी संग्रहीत करना चाहते हैं: उसका नाम, नागरिकता संख्या और वेतन। आप इस जानकारी को संग्रहीत करने के लिए विभिन्न चर नाम, सिटोनो और वेतन बना सकते हैं।

यदि आपको एक से अधिक लोगों की जानकारी संग्रहीत करने की आवश्यकता हो तो क्या होगा? अब, आपको प्रति व्यक्ति प्रत्येक जानकारी के लिए अलग-अलग चर बनाने की जरूरत है: name1, citNo1, salary1, name2, citNo2, salary2, आदि।

एक बेहतर दृष्टिकोण यह होगा कि किसी एकल नाम की Personसंरचना के तहत सभी संबंधित जानकारी का एक संग्रह हो और हर व्यक्ति के लिए इसका उपयोग करें।

संरचना पर अधिक

  • संरचनाएं और संकेत
  • एक फ़ंक्शन के लिए संरचनाओं को पास करना

दिलचस्प लेख...