>> स्पीकर 1: चलो एक प्रोग्राम लिखने करते हैं कि नाम के लिए उपयोगकर्ता और संकेत देता है
तीन छात्रों के घरों.
अब, उन लोगों के नाम और घरों स्टोर करने के लिए हम, क्या, छह चर इस्तेमाल कर सकते हैं.
तीन नामों के लिए तार, और अन्य मकानों के लिए तीन तार,
लेकिन हम पहले से ही हम साफ कर सकते हैं कि पता बजाय सरणियों का उपयोग करके उस कोड,
उदाहरण के लिए के लिए 3 आकार की एक सरणी तीन नाम, और का एक और सरणी
मकानों के आकार 3.
लेकिन यह हम यह साफ कर सकते हैं पता चला है आगे अभी भी, और वास्तव में उन रखना
एक साथ नाम और घरों, इतना है कि एक छात्र का नाम और उसके घर
किसी भी तरह इतना करने के लिए, कर रहे हैं समझाया एक ही चर में, बोलते हैं.
>> ऐसा करने के लिए, हालांकि, हम घोषणा की जरूरत हमारे अपने डेटा प्रकार, सी में अपने स्वयं के प्रकार,
सी के लेखकों जरूरी नहीं था कि पहले साल का लगता है.
ऐसा करने के लिए हम कीवर्ड का उपयोग कर सकते हैं typedef, के साथ साथ
अन्य कीवर्ड संरचना.
चलो एक नज़र रखना.
Structs.h के अंदर, मैं पहले से ही है द्वारा शुरू हो गया
CS50 पुस्तकालय भी शामिल है.
मैं अगले, typedef struct टाइप करने के लिए जा रहा हूँ और फिर एक घुंघराले ब्रेस.
संरचना के अंदर, मैं जा रहा हूँ एक छात्र होगा कि निर्दिष्ट
नाम बुलाया स्ट्रिंग, और अन्य स्ट्रिंग घर बुलाया.
मैं तो अपने घुंघराले ब्रेसिज़ बंद करने के लिए जा रहा हूँ, और निर्दिष्ट है कि का नाम
इस नए डेटा प्रकार छात्र होंगे.
दूसरे शब्दों में, इस वाक्य रचना के माध्यम से मेरे पास है अपना खुद का एक नया डेटा प्रकार घोषित
एक पल है कि पहले से मौजूद हैं, और नहीं था इस डेटा प्रकार के अंदर दो डेटा हैं
खेतों या डेटा सदस्यों, नाम कहा जाता है एक, एक बुलाया घर, जो दोनों के
प्रकार स्ट्रिंग की हैं.
>> चलो अब इस प्रकार का प्रयोग करते हैं एक वास्तविक कार्यक्रम में.
Structs0.c में, मैं इसी में मिल गया है अपने आप को कुछ के साथ पहले से ही शुरू कर दिया
boilerplate कोड, और अब मैं कर रहा हूँ इस डेटा का उपयोग करने के लिए जा रहा
इस प्रकार है, छात्र लिखें.
मैं पहली बार एक घोषित करने के लिए जा रहा हूँ प्रकार छात्र की सरणी, मैं हूँ
सरणी छात्रों कहते हैं -
बहुवचन -
और मैं अपने आकार का हो जाएगा कि निर्दिष्ट करेंगे का मूल्य है, जो नोटिस, तीन,
लगातार छात्रों -
सभी राजधानियों में -
मैं यहाँ घोषित कर चुके हैं, पहले फाइल में.
चलो अब उन तीन पर पुनरावृति करते हैं छात्रों, और के लिए उपयोगकर्ता का संकेत
उनके नाम और मकान.
>> मैं 0 मिल int के लिए, मैं कम है कि निरंतर से, मैं + +.
और अब के लिए यह शरीर के अंदर पाश, मैं कुछ बाहर मुद्रित करने के लिए जा रहा हूँ
छात्र का नाम तरह.
मैं तो वास्तव में प्राप्त करने के लिए जा रहा हूँ कि निर्दिष्ट द्वारा छात्र का नाम
छात्रों मैं ब्रैकेट.
दूसरे शब्दों में मैं मैं वें छात्र चाहते हैं में अब छात्रों को बुलाया सरणी, लेकिन
मुझे लगता है कि मैं वें छात्र की पर प्राप्त करना चाहते हैं नाम है, और ऐसा करने के लिए, मैं का उपयोग करने के लिए जा रहा हूँ
. ऑपरेटर, एक पर प्राप्त करने के लिए संरचना के विशिष्ट क्षेत्र के अंदर.
तो मैं छात्रों को मैं. नाम कोष्ठक निर्दिष्ट GetString की मान हो जाता है ().
इस बीच, मैं बाहर मुद्रित करने के लिए जा रहा हूँ कुछ इसी तरह, छात्र की कह
घर, और अब मैं निर्दिष्ट करने के लिए जा रहा हूँ कि मैं वें छात्रों घर क्षेत्र
का मान प्राप्त करेगा GetString के लिए एक और फोन ().
>> अब इन तीनों के साथ कुछ करते हैं छात्रों के नाम और घरों,
छपाई की तरह कुछ सरल एक वाक्य में प्रत्येक बाहर.
int के लिए मैं 0, फिर मैं की तुलना में कम है मिल छात्रों, मैं + +, printf "% s% s में है.
बैकस्लैश n ", और अब मुझ में प्लग उन दो क्षेत्रों के मूल्यों,
छात्रों, मैं. नाम, अल्पविराम कोष्ठक छात्रों मैं ब्रैकेट. घर, करीब
कोष्ठक, अर्धविराम.
>> और अब मैं एक और बात करने की ज़रूरत है.
इस फाइल के तल में, मैं करने की जरूरत है आवंटित की गई थी कि स्मृति को मुक्त
GetSring (), द्वारा पर्दे के पीछे जो बेशक, क्रम में malloc कॉल
तार के लिए स्मृति आवंटित उपयोगकर्ता प्रकार के.
लेकिन इस के लिए सरल है.
मैं 0 मिल int के लिए, मैं की तुलना में कम है छात्रों, मैं + +, और शरीर के अंदर
इस पाश के लिए, मैं बस के लिए जा रहा हूँ फ्री छात्रों ब्रैकेट मैं. नाम प्रदान करते हैं,
और नि: शुल्क छात्रों मैं ब्रैकेट. घर.
>> अब, हम स्पष्ट रूप से छोरों के लिए तीन का उपयोग किया है इस कार्यक्रम में, जब वास्तव में मैं
सिर्फ एक प्रयोग किया जाता है, लेकिन यह है हो सकता था सिर्फ प्रदर्शन के लिए के लिए, इतना है कि
हम तीन अलग में निर्दिष्ट कर सकते हैं हम क्या कर रहे हैं कि वास्तव में क्या कदम.
हम पहले एक नाम और एक घर हो रही है छात्रों में से प्रत्येक के लिए, हम फिर से कर रहे हैं
के लिए नाम और घर बाहर मुद्रण तीन छात्रों में से प्रत्येक के लिए, और
फिर हम स्मृति मुक्त करने के लिए जा रहे हैं छात्रों में से प्रत्येक के द्वारा प्रयोग किया.
लेकिन निश्चित रूप से हम इस गठबंधन है सका पाश के लिए एक बड़ा में.
>> संकलन, चलो अब बचा लो, और इस कार्यक्रम चलाते हैं.
बनाने structs 0. / structs 0, छात्र की नाम है, के डेविड प्रदान करते हैं, वह जीना होगा
माथर हाउस में, छात्र का नाम, चलो लॉरेन कहते हैं, वह Leverett में जीना होगा
सभा, छात्र का नाम, रोब, वह करेंगे किर्कलैंड घर में रहते हैं.
और वास्तव में, डेविड, माथर में है लॉरेन, Leverett में है
और रोब किर्कलैंड में है.