C++ में Nullptr और Nullptr में क्या अंतर है? (विस्तृत) - सभी अंतर

 C++ में Nullptr और Nullptr में क्या अंतर है? (विस्तृत) - सभी अंतर

Mary Davis

"Nullptr" को एक ऐसा कीवर्ड माना जाता है जो शून्य को एक पते के रूप में दर्शाता है, जबकि "Null" एक पूर्णांक के रूप में शून्य का मान है।

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

C++ भाषा में Nullptr और Nullptr के मामले में भी ऐसा ही है। मैं आपको बताता हूं कि इन दो शब्दों का क्या अर्थ है और उनके कार्य आपको उनके अंतर और उनके उपयोग को समझने में मदद करते हैं।

आइए सीधे अंदर गोता लगाएँ!

कंप्यूटर भाषाएं क्या हैं?

कंप्यूटर भाषाओं को कोड या सिंटैक्स के रूप में परिभाषित किया जा सकता है जिसका उपयोग प्रोग्राम और विशिष्ट एप्लिकेशन लिखने के लिए किया जाता है।

मूल रूप से, यह एक औपचारिक भाषा है जिसका उपयोग कंप्यूटर के साथ संवाद करने के लिए किया जाता है। उसी तरह, अलग-अलग देशों में अलग-अलग भाषाएँ होती हैं जो लोगों को विचारों को साझा करने में मदद करती हैं, इसलिए कंप्यूटर करें।

इनका आविष्कार कंप्यूटर की प्रोग्रामिंग को समझने और उन पर काम करने के लिए किया गया है। सामान्य तौर पर, कंप्यूटर भाषा को तीन मुख्य श्रेणियों में वर्गीकृत किया जा सकता है:

  • विधानसभा भाषा

    यह माइक्रोप्रोसेसरों के लिए उपयोग की जाने वाली निम्न-स्तरीय भाषा मानी जाती है और कई अन्य प्रोग्राम करने योग्य डिवाइस। यह दूसरी पीढ़ी की भाषा है। यह एक ऑपरेटिंग सिस्टम लिखने और विभिन्न डेस्कटॉप एप्लिकेशन लिखने के लिए जाना जाता है।

  • मशीन भाषा

    यह मूल भाषा पहली पीढ़ी की भाषा है।इसे मशीन कोड या यहां तक ​​कि ऑब्जेक्ट कोड भी कहा जाता है, जिसमें बाइनरी अंक 0 और 1 का एक सेट होता है। इन अंकों को एक कंप्यूटर सिस्टम द्वारा समझा और पढ़ा जाता है जो उन्हें जल्दी से व्याख्या करता है।

  • उच्च-स्तरीय भाषा

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

भाषा का वह हिस्सा जिसे कंप्यूटर समझता है, "बाइनरी" कहलाता है। दूसरी ओर, प्रोग्रामिंग भाषा का बाइनरी में अनुवाद "संकलन" के रूप में जाना जाता है।

संक्षेप में, प्रोग्रामिंग लैंग्वेज लोगों को कंप्यूटर को निर्देश देने की अनुमति देती हैं ताकि वे उन्हें पढ़ और निष्पादित कर सकें। प्रत्येक कंप्यूटर भाषा की अपनी विशिष्ट विशेषताएं होती हैं, C भाषा से लेकर अजगर तक।

ये भाषाएँ कंप्यूटर के लिए बड़े और जटिल डेटा को अधिक कुशलता से संसाधित करना आसान और तेज़ बनाती हैं। आज दुनिया में कई प्रोग्रामिंग लैंग्वेज हैं। इनमें से कुछ में Java, Python, HTML, C, C++ और SQL शामिल हैं।

सी++ भाषा क्या है?

C++ भाषा दुनिया की सबसे लोकप्रिय प्रोग्रामिंग भाषाओं में से एक है। आज की दुनिया में आप इस भाषा को ऑपरेटिंग सिस्टम, ग्राफिकल यूजर इंटरफेस और एम्बेडेड सिस्टम में पाएंगे।

यह एक क्रॉस-प्लेटफ़ॉर्म भाषा है जिसका उपयोग उच्च-प्रदर्शन एप्लिकेशन बनाने के लिए किया जाता है। C++ भाषा की स्थापना की गई थीबज्ने स्ट्रॉस्ट्रुप द्वारा, जो सी भाषा बनाने के लिए भी जिम्मेदार है। अपने नाम के अनुरूप ही यह भाषा सी भाषा का विस्तार है।

यह प्रोग्रामर्स को सिस्टम संसाधनों और मेमोरी पर उच्च नियंत्रण रखने की अनुमति देता है। आप सोच सकते हैं कि यह पहले से ही अपडेट है। हालाँकि, 2011, 2014 और 2017 में भाषा को तीन बार अपडेट किया गया है। यह C++11, C++14 से C++17 तक गया।

आज तक, C++ भाषा को इसकी महत्वपूर्ण सुवाह्यता के कारण बहुत अच्छी तरह से सराहा जाता है, जिससे रचनाकारों को ऐसे प्रोग्राम विकसित करने की अनुमति मिलती है जो विभिन्न ऑपरेटिंग सिस्टम या प्लेटफॉर्म पर कुशलता से चल सकें।

कई लोग C++ का उपयोग क्यों करते हैं?

यह भाषा प्रचलित है क्योंकि यह एक वस्तु-उन्मुख प्रोग्रामिंग भाषा है जो कार्यक्रमों को एक स्पष्ट संरचना प्रदान करती है और कोड को पुन: उपयोग करने की अनुमति देकर विकास लागत को कम करने में मदद करती है।

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

हालांकि इसे सीखने के लिए सबसे चुनौतीपूर्ण भाषाओं में से एक के रूप में जाना जाता है, इसके अपने फायदे हैं। इसकी बहु-प्रतिमान भाषा और इसके कार्यों के अधिक उन्नत सिंटैक्स के कारण इसे समझना दूसरों की तुलना में अधिक चुनौतीपूर्ण है।

यदि आप C++ भाषा सीखने में सक्षम हैं, तो यह सीखने के लिए बहुत कुछ हो जाता हैइसके बाद अन्य प्रोग्रामिंग लैंग्वेज, जैसे कि जावा और पायथन।

संक्षेप में, C++ एक सामान्य-उद्देश्य है, मध्य-स्तरीय प्रोग्रामिंग भाषा है जो इसे "C स्टाइल" में कोड करना संभव बनाती है। कुछ मामलों में, आप किसी भी प्रारूप में कोडिंग कर सकते हैं, जिससे C++ हाइब्रिड भाषा का उदाहरण बन जाता है

C और C++ भाषाओं में एक शून्य वर्ण, एक शून्य सूचक और एक शून्य कथन (अर्धविराम (;) द्वारा दर्शाया गया) है।

में शून्य क्या है सी ++?

शून्य को एक अंतर्निहित स्थिरांक माना जाता है जो शून्य का मान रखता है। कंप्यूटर प्रोग्रामिंग में यह कॉन्स्टेंट और पॉइंटर दोनों है।

डेटाबेस में शून्य एक मान है। मान शून्य इंगित करता है कि कोई मान मौजूद नहीं है। जब शून्य का उपयोग मान के रूप में किया जाता है, तो यह स्मृति स्थान नहीं होता है।

इसके अलावा, एक शून्य वर्ण के बिना, एक स्ट्रिंग उचित रूप से समाप्त नहीं हो पाएगी, जिससे कई समस्याएं हो सकती हैं। विभिन्न प्रोग्रामिंग भाषाओं में नल कैरेक्टर के कई अलग-अलग उपयोग हैं।

सवाल यह है कि आप सी++ में नल को कैसे लिखेंगे। ठीक है, अगर एक अशक्त स्थिरांक में एक पूर्णांक प्रकार होता है, तो इसे एक प्रकार के मान में परिवर्तित किया जा सकता है।

उदाहरण के लिए, यह वर्ण, "शून्य," संरचित क्वेरी भाषा (एसक्यूएल) में एक विशेष मार्कर के रूप में उपयोग किया जाता है, यह इंगित करने के लिए कि डेटा मान डेटाबेस में मौजूद नहीं है। एक रिलेशनल डेटाबेस तब होता है जब किसी विशिष्ट कॉलम में कोई मान अज्ञात या गायब होता है।

इसके अलावा, C# में,एक प्रोग्रामिंग भाषा, नल का अर्थ है "कोई वस्तु नहीं।" इस भाषा में, यह निरंतर शून्य के समान नहीं है।

हालाँकि C++ भाषा में, शून्य वर्ण एक अद्वितीय आरक्षित सूचक मान है जो किसी भी मान्य डेटा ऑब्जेक्ट को इंगित नहीं करता है। साथ ही, सी ++ भाषा में, नल फ़ंक्शन पॉइंटर वेरिएबल्स को मान निर्दिष्ट करने का एक तरीका है।

शून्य और शून्य के बीच अंतर करना

जैसा कि शून्य शून्य का मान रखता है, लोग अक्सर भ्रमित हो जाते हैं कि कोई शून्य और शून्य के बीच अंतर कैसे करेगा।

C++ में नल सिर्फ एक मैक्रो है जो एक नल पॉइंटर स्थिरांक को परिभाषित करता है और आम तौर पर शून्य मान का होता है। हालाँकि, नल आपको एक महत्वपूर्ण मान देता है जो दर्शाता है कि चर में कोई भार नहीं है।

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

यह सभी देखें: कर्मचारी और कर्मचारी के बीच क्या अंतर है? - सभी मतभेद

आप इसे एक रेफ्रिजरेटर के लिए समर्पित एक निश्चित स्थान के रूप में सोच सकते हैं। यदि फ्रिज है लेकिन उसमें कुछ भी नहीं है तो मान शून्य है। दूसरी ओर, यदि फ्रिज के लिए समर्पित स्थान में कोई फ्रिज नहीं है, तो मान शून्य होता है।

C++ में Nullptr का क्या मतलब है?

"Nullptr" कीवर्ड एक नल पॉइंटर मान का प्रतिनिधित्व करता है। आप यह इंगित करने के लिए एक शून्य सूचक मान का उपयोग करेंगे कि ऑब्जेक्ट हैंडल, इंटीरियर पॉइंटर, या मूल सूचक प्रकार किसी ऑब्जेक्ट को इंगित नहीं करता है।

केवल पॉइंटर्स ही मेमोरी लोकेशन होल्ड कर सकते हैं, और वैल्यू नहीं।

सबसे पहले, हमें यह समझने की आवश्यकता है कि पॉइंटर क्या है। यह एक वेरिएबल है जो मेमोरी लोकेशन रखता है।

एक नल पॉइंटर एक पॉइंटर है जो जानबूझकर कुछ भी संकेत नहीं देता है। यदि आपके पास कोई पता नहीं है जिसे आप पॉइंटर को असाइन कर सकते हैं, तो आप नल का उपयोग कर सकते हैं। शून्य मान पॉइंटर्स वाले अनुप्रयोगों में मेमोरी लीक और क्रैश से बचाता है।

इसके अलावा, Nullptr की जांच करने के लिए, आप पॉइंटर मान का उपयोग शर्त के रूप में यह जांचने के लिए कर सकते हैं कि कोई पॉइंटर C++ में नल है या नहीं। जब तार्किक अभिव्यक्तियों में उपयोग किया जाता है, तो नल पॉइंटर्स का मूल्यांकन असत्य के रूप में किया जाता है।

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

एक सामान्य प्रश्न यह है कि जब पहले से ही एक शून्य वर्ण है तो Nullptr की आवश्यकता क्यों है। ऐसा इसलिए है, क्योंकि C++11 में, Nullptr एक नल पॉइंटर स्थिरांक है, और इसकी आवश्यकता है क्योंकि यह प्रकार की सुरक्षा में सुधार करता है।

क्या Nullptr और Nullptr समान हैं?

नहीं। वे नहीं हैं। पहले उनके अंतर जानने के लिए नीचे दी गई तालिका देखें। 20> शून्य का प्रतिनिधित्व करने वाला कीवर्ड शून्य का मान शून्य को एक पते के रूप में दर्शाता है मूल्य को एक पते के रूप में दर्शाता है पूर्णांक नए और सुझाए गए फ़ंक्शन पुराने औरबहिष्कृत फ़ंक्शन सही सूचक प्रकार पूर्णांक के लिए उपनाम के रूप में कार्यान्वित

निरंतर शून्य

कीवर्ड्स पर ध्यान दें ताकि आप भ्रमित न हों।

शून्य को एक "प्रकट स्थिरांक" माना जाता है जो वास्तव में एक पूर्णांक है और एक अंतर्निहित रूपांतरण के कारण एक पॉइंटर को निर्दिष्ट किया जा सकता है।

जबकि Nullptr एक ऐसा कीवर्ड है जो स्व-परिभाषित प्रकार के मान का प्रतिनिधित्व करता है, और यह एक सूचक में परिवर्तित हो सकता है लेकिन पूर्णांक में नहीं। Nullptr आम तौर पर एक नल सूचक है और हमेशा एक रहेगा। यदि आप इसे एक पूर्णांक पर असाइन करने का प्रयास करते हैं, तो यह त्रुटियाँ उत्पन्न करेगा।

अगर आप अब भी नहीं समझे तो यह वीडियो देखें।

यह वीडियो अच्छी तरह से समझाता है कि आपको स्ट्रीमर के साथ-साथ नल या नलप्टर-कोड का क्या और कब उपयोग करना चाहिए।

क्या आप नल के बजाय नलप्टर का उपयोग कर सकते हैं?

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

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

हालांकि कुछ लोग अशक्त का उपयोग करने से बचते हैं क्योंकि यह अनुपयुक्त है, यह आजकल कम आम है क्योंकि कई कोडर नल के बजाय नलप्टर का उपयोग करने के सुझाव का पालन कर रहे हैं।

इसके अलावा, आप यह जांचने के लिए Nullptr कीवर्ड का उपयोग कर सकते हैं कि संदर्भ का उपयोग करने से पहले कोई पॉइंटर या हैंडल संदर्भ शून्य है या नहीं।

क्या आप एक Nullptr को डिरेफेरेंस कर सकते हैं?

आप एक अशक्तता का सम्मान कर सकते हैं। यदि आप ऐसा करते हैं, तो आप पॉइंटर द्वारा इंगित किए गए पते पर मान तक पहुंच सकते हैं।

कंप्यूटर भाषाओं में, पॉइंटर द्वारा इंगित स्मृति स्थान में निहित डेटा तक पहुँचने या हेरफेर करने के लिए डीरेफ़रिंग का उपयोग किया जाता है।

हालाँकि, आप इसे C भाषा में नहीं कर सकते एक अशक्त सूचक एक सार्थक वस्तु की ओर इशारा नहीं करता है, डीरेफरेंस का प्रयास, जो संग्रहीत डेटा तक पहुंच रहा है। एक अशक्त सूचक आमतौर पर रन-टाइम त्रुटि या तत्काल प्रोग्राम क्रैश की ओर जाता है।

यह सभी देखें: आशा है कि आपका सप्ताहांत अच्छा रहा होगा बनाम आशा है कि ईमेल में आपका सप्ताहांत अच्छा रहा होगा (अंतर जानें) - सभी अंतर

कंप्यूटर प्रोग्रामिंग में, एक डीरेफरेंस ऑपरेटर वह होता है जो एक पॉइंटर वेरिएबल पर काम करता है। यह चर के मान द्वारा इंगित स्मृति में स्थान मान लौटाता है। सी ++ प्रोग्रामिंग भाषा में, संचालित डिफरेंस को तारांकन चिह्न (*) के साथ दर्शाया गया है।

अंतिम विचार

शून्य को एक मैक्रो के रूप में परिभाषित किया जा सकता है जो एक शून्य सूचक को देता है, जिसका अर्थ है कि उस चर के लिए कोई पता नहीं है। सी भाषा में शून्य एक पुराना मैक्रो है जो सी ++ तक पारित हो गया है।

इस बीच, Nullptr C++11 में पेश किया गया एक नया संस्करण है और यह नल के प्रतिस्थापन के रूप में है।

इसलिए, आज यह अनुशंसा की जाती है कि आप नलप्टर का उपयोग उन जगहों पर शुरू करें जहां आप अतीत में या इस लेखन के समय भी नल का उपयोग करेंगे।

इस लेख का संक्षिप्त संस्करण देखने के लिए यहां क्लिक करें।

Mary Davis

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