अब हम C ++ कोर्स में प्रोग्रामिंग(programming) में दूसरे मॉड्यूल(module), मॉड्यूल(module) 2 पर चर्चा करेंगे। पहले मॉड्यूल(module) में, हमने C प्रोग्रामिंग(programming) भाषा का पुनरीक्षण किया है। हमने सी में सामान्य अवधारणाओं को पुनरावृत्त किया है, और सुनिश्चित किया है कि हम धीरे-धीरे सी ++ से परिचित होने के लिए तैयार हैं। इस मॉड्यूल(module) में और अगले 3 मॉड्यूल(module) में, हम विभिन्न प्रोग्रामिंग(programming) उदाहरणों के बारे में बात करेंगे और यह दिखाएंगे कि कैसे C ++ में, इस प्रोग्राम(program) को अधिक कुशलतापूर्वक और अक्सर बेहतर तरीके से लिखा जा सकता है, सी में क्या आवश्यक है, की तुलना में बेहतर तरीके से। 2, हम C और C ++ प्रोग्राम(program) के बीच बुनियादी अंतर को समझने के साथ शुरू करेंगे। और हम C ++ में प्रोग्रामिंग(programming) की आसानी की सराहना करने की कोशिश करेंगे क्योंकि हम इस मॉड्यूल(module) के साथ-साथ निम्नलिखित 3 मॉड्यूल(module) पर भी जाते हैं। हम मुख्य रूप से IO चर, गणित लाइब्ररी(library) मानक लाइब्ररी(library) हेडर, लूप और बूल(bool) प्रकार के क्षेत्रों में इसके विपरीत के बारे में बात करेंगे। तो, हम C के उसी प्रारंभिक प्रोग्राम(program) से शुरू करते हैं जो "Hello World" को प्रिंट(print) करना है। तो, यहां दो कॉलम में हम "हैलो वर्ल्ड" को C के साथ-साथ C ++ में भी प्रिंट(print) करने का प्रोग्राम(program) दिखाते हैं। आप कुछ बुनियादी अंतरों को नोट कर सकते हैं, पहले IO हेडर बदल गया है। सी में, यह stdio.h था; C ++ में यह IO स्ट्रीम बन जाता है। सी में, जब हम प्रिंटफ(printf) करते हैं, हम कंसोल(console) को लिखते हैं; हम कंसोल(console) मे प्रिंट(print) करते हैं। यहां, हम एक ऑपरेटर(operator) का उपयोग करते हैं, बाएं तीर ऑपरेटरों की एक जोड़ी आउटपुट(output) स्ट्रीमिंग ऑपरेटर(operator) को नियंत्रित करने के लिए स्ट्रीम करती है और कंसोल(console) सी में फ़ाइल को स्टडआउट किया गया था, अब यह C ++ में एक cout स्ट्रीम है। यह भी ध्यान दें कि हम cout से पहले एक उपसर्ग का उपयोग कर रहे हैं जिसे std कहा जाता है और इसे std :: के साथ लिखा जाता है। इस नोटेशन का उपयोग हमें जल्दी से करने की आदत होगी, इस एसटीडी को एक नेमस्पेस(namespace) कहा जाता है; मानक नेमस्पेस(namespace) । तो, C ++ में किसी भी मानक लाइब्ररी(library) के प्रतीक को इस विशेष उपसर्ग std के साथ उपसर्ग किया जाएगा। अब, इस सरल ‘हैलो वर्ल्ड‘ प्रोग्राम(program) में ध्यान देने के लिए एक और प्रमुख बिंदु यह है कि जब हम प्रिंटफ़(printf) करते हैं, तो हमारे पास मनमाने ढंग से संख्याएँ हो सकती हैं, हम इस variadic फ़ंक्शन(function) को कहते हैं। तो, यहाँ ‘हैलो वर्ल्ड' उदाहरण में हम प्रिंटफ(printf) के दो उपयोग देख रहे हैं, दोनों एक पैरामीटर(parameter), प्रारूप स्ट्रीम का उपयोग करते हैं। बेशक, हमारे यहाँ एक प्रारूप नहीं है; यह एक निरंतर स्ट्रिंग(string) मुद्रित किया जा रहा है। इसके विपरीत, C ++ में आउटपुट(output) स्ट्रीमिंग ऑपरेटर(operator) एक बाइनरी ऑपरेटर(operator) होता है जो कि बाएं हाथ की ओर धारा और दाहिने हाथ की तरफ प्रिंट(print) करने के लिए सामग्री के रूप में होता है और यह इस रूप में प्रिंट(print) करता है। इसलिए, यदि हम पहली आउटपुट(output) लाइन, std :: cout आउटपुट(output) ऑपरेटर(operator) और संदेह उद्धरणों के भीतर देखते हैं, तो हमारे पास एक निरंतर स्ट्रिंग(string) है इसका मतलब है कि C ++ स्ट्रिंग(string) में हैलो वर्ल्ड कंसोल(console) कंसोल(console) के लिए स्ट्रीम किया जाएगा। यह भी ध्यान दें कि, नया पंक्तिबद्ध वर्ण जो सी में बच चरित्र स्लैश एन था। सी ++ में उसी का उपयोग किया जा सकता है, लेकिन नई लाइन पर जाने का एक और तरीका है जिसे एंडल कहा जाता है, जो एंड लाइन का संक्षिप्त रूप है और हम उस पर बाद में सीखते हैं। यह, एंडल मूल रूप से एक धारा है। तो, यह कदम हम यह देखने की कोशिश कर रहे हैं कि C ++ प्रोग्राम(program) में बेसिक आउटपुट(output) सिस्टम cout और आउटपुट(output) स्ट्रीमिंग ऑपरेटर(operator) का उपयोग करके किया जा सकता है। हम अगले प्रोग्राम(program) की ओर बढ़ते हैं, जहाँ हम एक बहुत ही सरल अंकगणितीय प्रोग्राम(program) का चित्रण कर रहे हैं, जिसमें दो चर होते हैं, a और b और उन्हें जोड़कर अपना योग बनाते हैं। इन चर के मानों को फिर से कंसोल(console) से पढ़ा जाता है, जो C में std है और हम scanf फ़ंक्शन(function) का उपयोग करते हैं, जिसे आप सभी प्रारूप स्ट्रिंग(string) स्कैनफ(scanf) से परिचित करते हैं, जैसे कि printf एक वैरिएड(variadic) फ़ंक्शन(function) है जो कि, चर संख्या लेता है मापदंडों के। यहां, हम स्कैनफ(scanf) का एक रूप देखते हैं जो 3 पैरामीटर(parameter) ले रहा है; प्रारूप स्ट्रिंग(string) और ए और बी के पते, क्रमशः। इसके विपरीत, C ++ प्रोग्राम(program) में हम एक अन्य ऑपरेटर(operator) का परिचय देते हैं जो कि इनपुट(input) स्ट्रीम से स्ट्रीमिंग के लिए उपयोग किया जाता है। तो, इसे एक इनपुट(input) स्ट्रीमिंग ऑपरेटर(operator) कहा जाता है, यह फिर से तीर की एक जोड़ी है, लेकिन तीर अब बाएं से दाएं निर्देशित होता है। तो, यदि आप std :: cin, इनपुट(input) ऑपरेटर(operator) में देखते हैं, तो इसका मतलब है कि C में पढ़ा जा रहा है। क्या दिलचस्प है, C ++ में इस प्रारूप में आप वास्तव में कई ऑपरेटरों को कई ऑपरेटरों को एक के बाद एक कई वेरिएबल डाल सकते हैं जैसा कि हम यहां दिखा रहे हैं। इसलिए, मानक इनपुट(input) से हम फिर से a स्ट्रीम करने के बाद, मानक इनपुट(input) से b स्ट्रीम करें। तो, इस अंकन का अर्थ है कि पहले एक और फिर वेरिएबल बी को कंसोल(console) के मानक इनपुट(input) से पढ़ा जाएगा। हम यह भी दिखाते हैं कि ये चर मानक स्ट्रीमिंग आउटपुट(output) के आउटपुट(output) कैसे हैं, जो C प्रोग्राम(program) के रूप में cout या std आउट है। दो प्रमुख अंतर हैं, कि आपको यहाँ ध्यान देना चाहिए, एक हमें C ++ में प्रारूप स्ट्रिंग(string) का उपयोग करने की आवश्यकता नहीं है। C में हम जानते हैं, यदि मैं एक पूर्णांक चर को प्रिंट(print) करना चाहता हूं तो मुझे प्रारूप स्ट्रिंग(string) में निर्दिष्ट करने की आवश्यकता है कि चर को प्रतिशत d प्रारूप में मुद्रित किया जाना है, जो दर्शाता है कि एक पूर्णांक प्रकार का डेटा मुद्रित किया जाना है, C ++ में, चर के विपरीत एक प्रारूप के साथ निर्दिष्ट करने की आवश्यकता नहीं है, संकलक यह जानकर कि यह पूर्णांक चर है स्वचालित रूप से उस प्रारूप को तय करेगा जो इसे प्रिंट(print) करने के लिए आवश्यक है और इसे सही तरीके से प्रिंट(print) करें। एक दूसरा प्रमुख अंतर जो आपको इन दो कार्यक्रमों के बीच में नोट करना चाहिए जब हम स्कैनफ(scanf) करते हैं, तो हम `एसटीडी इन' से मान पढ़ रहे हैं और उस मूल्य को पढ़ने के बाद चर के मूल मूल्य को मूल्य में बदलना होगा उपयोगकर्ता द्वारा इनपुट(input) है। हमें C के पते को पास करने की आवश्यकता है क्योंकि यह C से परिचित होगा। यह पता तंत्र द्वारा की जाने वाली कॉल की तरह है जिसका उपयोग किया जा रहा है, जहां हम चर के मान को स्कैनफ पैरामीटर(parameter) के मान से कॉल पैरामीटर(parameter) के रूप में पास करते हैं। इसके विपरीत, C ++ में जब हम इनपुट(input) स्ट्रीम से पढ़ रहे होते हैं, तो हमें पास होने के लिए पते की आवश्यकता नहीं होती है; हम केवल चर को निर्दिष्ट कर सकते हैं और कंपाइलर बाकी की देखभाल करेगा। जब हम C ++ ऑपरेटरों और कॉल तंत्र के बारे में अधिक सीखते हैं, तो हम समझेंगे कि यह वास्तव में कैसे काम करता है, लेकिन यह निश्चित रूप से प्रारूप स्ट्रिंग(string) के पढ़ने के साथ-साथ प्रिंटफ(printf) या पते के लिए चर या तो निर्दिष्ट करने की आवश्यकता के लिए और अधिक सुविधाजनक हो जाता है। C ++ में स्कैनफ(scanf) के लिए वैरिएबल सब कुछ समान रूप से किया जा सकता है। एक अन्य छोटा अंतर है जिसे आप चर राशि की घोषणा के संदर्भ में नोट कर सकते हैं, सी प्रोग्राम(program) में चर चर को बी और बी के बाद शीर्ष पर घोषित किया जाता है, क्योंकि मूल सी या सी के पुराने संस्करण, जो C89 निर्दिष्ट है कि चर के सभी घोषणा प्रोग्राम(program) में पहले निष्पादन योग्य बयान से पहले होना चाहिए। सी प्रोग्राम(program) में जो हम यहां पहले एक्ज़ीक्यूटेबल में देखते हैं वह है प्रिंटफ(printf) फ़ंक्शन(function) कॉल। तो, इससे पहले सभी चर घोषित किए जाने चाहिए। C ++ में यह प्रतिबंध मौजूद नहीं है। इसलिए, जब हम नाम की शुरुआत कर रहे होते हैं, तब हम वैरिएबल की घोषणा कर सकते हैं और जब हमें नाम शुरू करने की जरूरत होती है, तब हमें वेरिएबल ए और बी की जरूरत होती है, क्योंकि पढ़ने की जरूरत होती है, लेकिन जब हमें उनके योग करने की आवश्यकता होती है, तो हम सम राशि घोषित कर सकते हैं। एक चर, और फिर एक प्लस बी का उपयोग करें और उस परिणाम को योग के मूल्य को आरंभ करने के लिए योग में डालें। बेशक, यह ध्यान दिया जाना चाहिए कि C का बाद का संस्करण है जो C99 है जो आपको चर की घोषणा को C ++ में उस बिंदु तक ले जाने की अनुमति देता है जब आपको वास्तव में चर की आवश्यकता होती है। इसलिए, कृपया इस प्रोग्राम(program) को समानता और अंतर को बेहतर समझने के लिए अपने कंप्यूटर पर ध्यान से पढ़ें और चलाएं। हम एक और प्रोग्राम(program) पर आगे बढ़ेंगे, जो कि गणितीय संगणना का उपयोग करके फिर से एक सरल प्रोग्राम(program) है, जो मुझे यकीन है कि आपने सी प्रोग्राम(program) में कुछ बिंदुओं पर किया है। तो, हम जानते हैं कि C में C मानक लाइब्ररी(library) के एक भाग के रूप में math.h हैडर है, जिसमें कई उपयोगी कार्य हैं। तो, यहाँ हम एक ऐसे ही फ़ंक्शन(function) के उपयोग को दर्शा रहे हैं, जिसे sqrt कहा जाता है, एक डबल चर के वर्गमूल को खोजने के लिए। यह एक डबल चर लेता है और एक दोहरा परिणाम देता है जो पैरामीटर(parameter) का एक वर्गमूल है जो sqrt को पास किया जाता है। समान फ़ंक्शन(function) को C ++ में भी लागू किया जा सकता है। इसलिए, हम दिखा रहे हैं कि ऐसा कैसे किया जाए, तो आप कृपया ध्यान दें कि हम जिस हेडर का उपयोग C ++ में करते हैं, अब उसका नाम बदल दिया गया है। C में हम इसे math.h कह रहे हैं। एक ही हैडर, C ++ में cmath कहा जाता है और हम देखेंगे कि यह एक सामान्य सम्मेलन है कि C ++ में किसी भी मानक लाइब्ररी(library) हेडर का उपयोग किया जा सकता है, लेकिन जब आप इसका उपयोग करते हैं, तो आप एक जोड़ते हैं सी नाम की शुरुआत में। C का अर्थ है कि मानक लाइब्रेरी शीर्षलेख C मानक लाइब्रेरी से आ रहा है और दूसरा अंतर यह है कि आप C में मौजूद फ़ाइल नाम के लिए डॉट h एक्सटेंशन को छोड़ देते हैं, आप इसे cmath कहते हैं। बेशक, जब हम ऐसा करते हैं, जैसा कि मैंने पहले उल्लेख किया था कि cout और endl के नामों के संदर्भ में, ये भी std के समान नेमस्पेस(namespace) में हैं, जिसका अर्थ है कि C में फ़ंक्शन(function) sqrt को sqrt कहा जाता है, जबकि C ++ ++ में फ़ंक्शन(function) का नाम sqrt, std के साथ उपसर्ग बन जाएगा, जिसका पूरा नाम std :: sqrt है। अब, यहां हम मानक लाइब्ररी(library) प्रतीकों को व्यक्त करने के लिए एक और शॉर्ट कट या सुविधाजनक तरीका भी दिखाते हैं, ध्यान दें कि हैश के बाद C ++ प्रोग्राम(program) में शामिल है, हमने एक लाइन लिखी है जिसमें नेमस्पेस std का उपयोग किया है। इसका मतलब यह है कि अगर हम इस पंक्ति को शामिल करते हैं तो C ++ प्रोग्राम(program) में होने वाले किसी भी मानक लाइब्रेरी प्रतीक को std :: को उपसर्ग माना जाएगा, हमें हर बार std :: cout, std :: cin, std लिखना नहीं होगा :: एंडल या एसटीडी :: sqrt। तो, यह करने का एक सुविधाजनक तरीका है कि आप या तो C ++ में नाम स्थान सुविधा का उपयोग कर सकते हैं या यदि आप इसका उपयोग नहीं कर रहे हैं, तो सभी मानक लाइब्ररी(library) प्रतीकों को std :: के साथ उपसर्ग करना होगा। प्रोग्राम(program) के बाकी हिस्सों को बहुत आसानी से समझा जा सकता है और यह बहुत सी प्रोग्राम(program) की तरह है जो आप बाईं ओर देखते हैंपरिवर्तन इनपुट(input) और आउटपुट(output) स्ट्रीमिंग के अनुसार हैं जैसा कि हमने पहले ही देखा है। इसलिए, इसके साथ हम आगे बढ़ेंगे और C ++ मानक लाइब्ररी(library) पर एक नज़र डालेंगे। बस संक्षेप में, मैंने जो पहले ही निर्दिष्ट किया है कि सी मानक लाइब्ररी(library) में सभी नाम वैश्विक हैं, यह सभी मानक लाइब्ररी(library) कार्य हैं, मैक्रोज़; वे उस नाम से किसी भी फ़ंक्शन(function) के लिए उपलब्ध हैं। इसलिए, इसलिए, सभी C मानक लाइब्ररी(library) के नाम वास्तव में सभी व्यावहारिक उद्देश्यों के लिए आरक्षित हैं जो इस तरह से आरक्षित हैं कि आप अपना स्वयं का प्रिंटफ(printf) फ़ंक्शन(function) नहीं लिख सकते हैं और C मानक लाइब्ररी(library) में दिए गए प्रिंटफ(printf) फ़ंक्शन(function) का उपयोग करना जारी रख सकते हैं क्योंकि आप जिस क्षण लिखते हैं अपने खुद के एक प्रिंटफ(printf) फ़ंक्शन(function), वह भी ग्लोबल स्पेस में एक नाम के रूप में। जब आप औपचारिक रूप से C ++ में नामस्थानों के बारे में अध्ययन करते हैं, तो आप इसे अधिक समझेंगे, लेकिन कृपया ध्यान दें कि सभी नाम वैश्विक स्थान पर उपलब्ध हैं। इसके विपरीत, C ++ मानक लाइब्ररी(library) में सभी नाम std नाम स्थान में हैं। यह विशेष रूप से मानक लाइब्ररी(library) के लिए आरक्षित है यह नेमस्पेस(namespace) और सभी नाम उपसर्ग के साथ उपसर्ग :: जिसका अर्थ है कि यह नाम इस std नाम स्थान के भीतर होता है। इसलिए, नाम स्थान ऐसा होता है जब हम अपने स्वयं के नामों का उपयोग करते हैं, यह एक परिवार के नाम या अंतिम नाम की तरह होता है जिसे हम उपयोग करते हैं। अतः मैं पार्थ प्रतिम दास हूँ। तो, दास मेरा अंतिम नाम है और मेरा नाम पार्थ है। इसलिए, पार्थ प्रतिम चक्रवर्ती का कहना है कि कुछ अन्य पारिवारिक नामों में एक और पार्थ हो सकता है। तो, ये अलग-अलग पारिवारिक नामों से अलग हैं जो मौजूद हैं। तो, नाम स्पेस इससे मिलता-जुलता है। हम इसके बारे में और बाद में बात करेंगे। तो, हम यहां यह भी स्पष्ट करते हैं कि यदि आप नाम रिक्त स्थान std का उपयोग करते हुए शॉर्ट कट करते हैं, तो आपको उस std :: namespace के साथ सभी मानक लाइब्रेरी नामों को उपसर्ग करने की आवश्यकता नहीं है। अब, मैं कुछ हाइलाइट करना चाहूंगा, जो मानक लाइब्ररी(library) के हेडर के बारे में बहुत विशिष्ट है। तो, हमने नोट किया है कि C ++, C का मतलब है कि इसका क्या मतलब है; इसका अर्थ है कि किसी भी C प्रोग्राम(program) को C ++ प्रोग्राम(program) के रूप में भी निष्पादित किया जाना चाहिए। यह एक और प्रश्न लाता है कि हम C के मानक लाइब्ररी(library) के साथ क्या करते हैं, जैसा कि मैंने पहले ही स्पष्ट किया है कि C की मानक लाइब्रेरी का उपयोग C ++ प्रोग्राम(program) में भी किया जा सकता है, लेकिन आपके द्वारा प्रोग्राम(program) को मिलाने के लिए एक छोटा बिंदु है C से प्रोग्राम(program) के साथ C ++ से आप मानक लाइब्ररी(library) हेडर कैसे निर्दिष्ट करते हैं। तो, यह तालिका आपको दिखाती है कि आप बाईं ओर यह कैसे कर सकते हैं, हम जिस भाषा में आप प्रोग्राम(program) लिख रहे हैं उस पंक्तियों पर और जिस कॉलम पर हम हेडर दिखा रहे हैं, वह किस मानक लाइब्रेरी से उपयोग किया जा रहा है, चाहे वह C से हो या यह C ++ से है। इसलिए, यदि आप एक C प्रोग्राम(program) लिख रहे हैं और आप C मानक लाइब्रेरी हेडर का उपयोग कर रहे हैं, तो हम सभी जानते हैं कि आप stdio.h की तरह शामिल होंगे। यदि आप C ++ प्रोग्राम(program) लिख रहे हैं और एक C मानक लाइब्रेरी हेडर भी शामिल है, तो जैसा कि मैंने उल्लेख किया है, आपको C के साथ C मानक लाइब्रेरी नाम को उपसर्ग करने की आवश्यकता होगी। इसलिए, stdio.h अब C stdio बन गया है और आपको ड्रॉप करना होगा नाम से डॉट h और सी मानक लाइब्ररी(library) से इन प्रतीकों के सभी अब std नेमस्पेस(namespace) में हो जाता है और हमें std :: के साथ उपसर्ग करना होगा। यदि आप C ++ प्रोग्राम(program) लिखते हैं और C ++ मानक लाइब्रेरी शामिल करते हैं, तो आप इसे केवल हैश के रूप में शामिल करेंगे IO स्ट्रीम। C ++ में सभी मानक लाइब्रेरी हेडर के पास उनके फ़ाइल एक्सटेंशन में कोई डॉट एच नहीं है, यह एक ऐतिहासिक कारण है जिसे मैं बाद के बिंदु पर समझाने की कोशिश करूंगा, लेकिन कृपया ध्यान दें कि IO स्ट्रीम नहीं होना चाहिए। और शामिल नहीं होना चाहिए। इस मैट्रिक्स में अंतिम बॉक्स कि अगर आप C प्रोग्राम(program) लिख रहे हैं और आप C ++ हेडर का उपयोग करना चाहते हैं तो निश्चित रूप से लागू नहीं होता है क्योंकि आप ऐसा नहीं कर सकते हैं कि C ++ में बहुत सारी विशेषताएं हैं जो C समर्थन नहीं करता है और इसलिए, ऐसा उपयोग नहीं किया जा सकता है । विशेष रूप से ध्यान दें और मैंने लाल रंग से हाइलाइट किया है कि गलती से या सी में मानक लाइब्ररी(library) हेडर के लिए एक फ़ाइल नाम एक्सटेंशन के रूप में डॉट एच का उपयोग करने के अभ्यास से। यदि आप I ++ स्ट्रीम में शामिल करते हैं। C ++ प्रोग्राम(program) में, आपका कंपाइलर वास्तव में आपको नहीं दे सकता है एक त्रुटि जिसका अर्थ है कि आपका कंपाइलर वास्तव में दिनांकित है और आपको अधिक हाल ही में संकलक के पास जाना चाहिए और इसलिए, यह एक बहुत ही खतरनाक प्रस्ताव है क्योंकि आप एक गलती कर रहे हैं IO stream.h या उस मामले के लिए कोई भी सी + + मानक लाइब्रेरी हेडर डॉट एच के साथ विस्तार फाइलें, उन सभी को चित्रित किया गया है। वे उपयोग में अधिक नहीं हैं, लेकिन कुछ संकलक अभी भी उन्हें अनुमति देने के लिए जारी हैं क्योंकि इन सभी को C ++ मानक में किए जाने से पहले लिखा गया था। तो, कृपया मानक लाइब्ररी(library) हेडर के इन सम्मेलनों को ध्यान में रखें। आगे, हम उन लूपों के उपयोग पर ध्यान देंगे जो आपके सी। में बहुत समान हैं। इसलिए, हम यहां केवल ० से शुरू होने वाले अंकों का एक क्रम जोड़ रहे हैं। n और उन्हें लूप के लिए उपयोग करके सम्‍मिलित करें। IO हेडर और cout स्ट्रीमिंग कन्वेंशन में अंतर को छोड़कर समान प्रोग्राम(program) लगभग समान रूप से C ++ के लिए काम करेगा। आप यह भी नोट कर सकते हैं कि लूप लूप इंडेक्स के लिए, मैं कोष्ठक के भीतर 'निर्माण' के लिए घोषित किया जा सकता है। यदि आप ऐसा करते हैं तो i की यह घोषणा लूप के लिए स्थानीय है, जो एक बार लूप के लिए बाहर आने के बाद आप बाद के कॉट स्टेटमेंट में हैं या बाद में मुझे घोषित नहीं किया जाएगा। इसलिए, इसे पेश किया गया था, ताकि आप बस जब भी आपको स्थानीय सूचकांक चर की आवश्यकता हो, आप जल्दी से स्थानीय रूप से उनका उपयोग कर सकें और वास्तव में इस बारे में न सोचें कि क्या आपने पहले उस चर को घोषित किया है या नहीं, इसका उपयोग किसी और संदर्भ में किया जा रहा है या नहीं । आप केवल स्थानीय रूप से उन्हें घोषित कर सकते हैं और C ++ में उनका उपयोग कर सकते हैं। C89 में यह संभव नहीं था, लेकिन अब C99 में भी यह संभव है। अंत में, इस मॉड्यूल(module) के अंतिम भाग में, हम बूलियन(Boolean) प्रकार के उपयोग का वर्णन करते हैं। हम सभी जानते हैं कि सी का एक बूलियन(Boolean) प्रकार का संभावित उपयोग होता है, जो एक प्रकार है जहां हम कहते हैं कि यह एक मूल्य ले सकता है, या तो सच है या गलत। अब, C जो C89 है, मूल पुराना C जो हमारे पास बूल(bool) के लिए अलग प्रकार का नहीं है। तो, यह क्या किया गया था कि यह बूल(bool) की व्याख्या करने के लिए int का उपयोग कर रहा था, जो कहीं भी आप बूलियन(Boolean) स्थिति या बूलियन(Boolean) मान रखना चाहते हैं, आप एक अंतर चर घोषित करेंगे और 0 पर सेट करेंगे, यदि आप गलत मतलब चाहते हैं और सेट करें कुछ गैर-शून्य, अगर हम सच का मतलब करना चाहते हैं। इसलिए, इन 3 स्तंभों में से यदि आप बाईं ओर देखते हैं तो सबसे अधिक स्तंभ सबसे आम तरीका है कि सी प्रोग्राम(program) बूलियन(Boolean) के साथ काम कर रहा था, आप सुविधा के लिए दो स्थिर परिभाषित कर सकते हैं; 1 और 0 होने के लिए सही और गलत है और उन्हें अपने प्रोग्राम(program) में उपयोग करें, लेकिन जैसा कि मैं दिखाता हूं कि चर को बूलियन(Boolean) स्थिति के लिए उपयोग किए जाने वाले चर x को अंतर प्रकार के रूप में घोषित किया गया है और यह सच के साथ आरंभिक है। इसलिए, यदि आप प्रिंट(print) करते हैं तो यह दिखाएगा कि इसका मूल्य 1 है; यह C89 में मौजूद है। इसके बाद C99 में, बूल(bool) प्रकार को पेश करने के लिए एक बदलाव किया गया है। अब, इस पर गौर करने से पहले, हम पहले सबसे सही कॉलम पर गौर करें, जो कि C ++ प्रोग्राम(program) है। C ++ में आपके पास बिल्ट-इन टाइप के रूप में बूल(bool) है, जैसे आपके पास int, char, float, double है। इसी प्रकार, आपके पास एक बूल(bool) प्रकार है, यह बूल(bool) टाइप केवल दो शाब्दिक है; निचले मामले में सच और झूठ दोनों। इसलिए, वे कीवर्ड अब भी आरक्षित हैं। तो, आप बूलियन(Boolean) वैरिएबल के रूप में उपयोग के लिए x को समान रूप से परिभाषित करना चाहते हैं, आप सीधे बूल(bool) का उपयोग कर सकते हैं, जो यह समझना बहुत आसान है कि आप वास्तव में बूलियन(Boolean) मान के साथ काम कर रहे हैं और आप इसे सही या गलत के साथ आरंभ कर सकते हैं, लेकिन यदि आप इस चर के मान को मुद्रित करने का प्रयास करें, यह सही या गलत नहीं छपेगा, यह वास्तव में 1 या 0 प्रिंट(print) करेगा, यदि यह सत्य है तो ये 1 है और अन्यथा 0 है। स्वाभाविक रूप से, निर्मित प्रकार में स्पष्ट और स्पष्ट रूप से उपयोग करने में सक्षम होने के बहुत सारे फायदे हैं। इनमें से सबसे महत्वपूर्ण C ++ प्रोग्राम(program) से है, यदि आपने अपने बूलियन(Boolean) मान को निर्दिष्ट करने के लिए बूल(bool) का उपयोग किया है, तो प्रोग्राम(program) को पढ़ने वाला कोई भी व्यक्ति यह समझने में सक्षम होगा कि यह चर सही या गलत के अलावा कोई अन्य मूल्य नहीं ले सकता है। इसके विपरीत, यदि हम बूलियन(Boolean) मान के लिए int का उपयोग करने की सी शैली का उपयोग करते हैं, तो यह वास्तव में कई अलग-अलग मान ले सकता है जिन्हें एक मामले के रूप में सच या गलत के रूप में व्याख्या की जाती है। अब, मध्य स्तंभ में, हम C99 मानक में C प्रोग्रामिंग(programming) भाषा का एक दिलचस्प विस्तार देखते हैं कि C99 किसके साथ आया था। C99 ने एक स्पष्ट बूलियन(Boolean) प्रकार पेश किया और यह अंडरस्कोर बूल(bool) नाम से दिया गया है, जहां बी को पूंजी में लिखा गया है, लेकिन चूंकि यह बूल(bool) लिखने के लिए एक बहुत ही सामान्य प्राकृतिक तरीका नहीं है, इसने एक नया मानक लाइब्रेरी हेडर भी प्रदान किया है जिसे stdbool.h कहा जाता है जहां तीन मैक्रोज़ प्रदान किए जाते हैं। पहला मैक्रो निचले मामले में बूल(bool) को परिभाषित करता है और अंडरस्कोर कैपिटल बूल(bool) के समान है। इसलिए, यदि हम C99 प्रोग्राम(program) में कम मामले में बूल(bool) का उपयोग करते हैं, तो आप वास्तव में उस नए पूर्वनिर्धारित प्रकार अंडरस्कोर कैपिटल बूल(bool) का उपयोग कर रहे हैं और यह हेडर में 1 और 0 के रूप में सही और गलत को परिभाषित करता है, ताकि आप इसका उपयोग कर सकें यहाँ लगातार। इसलिए, यदि हम हैं; जब भी आप C का उपयोग कर रहे हों, तो आपको हमेशा बूल(bool) टाइप करना चाहिए और int का उपयोग नहीं करना चाहिए और इसे बूल(bool) टाइप के रूप में व्याख्या करना चाहिए C ++ में निश्चित रूप से यह बिल्ट-इन टाइप के रूप में सामने आता है। तो, हम बताते हैं कि इसके कई अन्य फायदे हैं और साथ ही साथ हम विभिन्न प्रकारों के साथ चलते हैं। इसलिए इस मॉड्यूल(module) में, हमने C और C ++ के बीच के बुनियादी अंतर को समझने की कोशिश की है; आप इनपुट(input) आउटपुट(output) कैसे करते हैं? आप चर कैसे घोषित करते हैं? और C ++ में C और C ++ के मानक लाइब्ररी(library) का उपयोग कैसे किया जाता है? हमने यह देखना शुरू कर दिया है कि C ++ हमें और अधिक लचीलापन देता है कि हम कैसे घोषित कर सकते हैं और हम इनपुट(input) आउटपुट(output) कैसे कर सकते हैं। अब, हमें उन जटिल प्रिंटफ(printf) स्टेटमेंट्स, स्ट्रीम प्रिंटफ(printf) फ़ंक्शन(function) कॉल की आवश्यकता नहीं है जहां प्रारूप अलग स्ट्रिंग्स(strings) में हैं, चर अलग-अलग सूचीबद्ध हैं। हमें यह याद रखने की आवश्यकता नहीं है कि स्कैनफ(scanf) को चर और इसी तरह के पते की जरूरत है और इस तरह से सी ++ में कई निर्माण और कार्यों को सरल बनाया गया है, जो प्रोग्रामिंग(programming) को बढ़ाने में मदद करेगा।