C++ मा Null र Nullptr बीच के भिन्नता छ? (विस्तृत) - सबै भिन्नताहरू

 C++ मा Null र Nullptr बीच के भिन्नता छ? (विस्तृत) - सबै भिन्नताहरू

Mary Davis

"Nullptr" लाई ठेगानाको रूपमा शून्य चित्रण गर्ने कुञ्जी शब्द मानिन्छ, जबकि "Null" लाई पूर्णांकको रूपमा शून्य मानिन्छ।

यदि तपाइँ प्रोग्रामर हुनुहुन्छ भने, तपाइँलाई थाहा हुन सक्छ कि कम्प्यूटर भाषाहरू राम्रोसँग कोड गर्नको लागि बुझ्न कत्तिको महत्त्वपूर्ण छ। तर कहिलेकाहीँ, यो केवल अलिकति भ्रामक हुन सक्छ, र तपाईं दुई चीजहरू बीच मिसिन सक्नुहुन्छ।

C++ भाषामा Null र Nullptr को लागि समान छ। म तपाईंलाई यी दुई सर्तहरूको अर्थ र तिनीहरूको भिन्नता र प्रयोग बुझ्न मद्दत गर्नका लागि तिनीहरूका कार्यहरू बताउँछु।

यसैमा डुबौं!

कम्प्युटर भाषाहरू के हुन्?

कम्प्यूटर भाषाहरू प्रोग्रामहरू र विशिष्ट अनुप्रयोगहरू लेख्न प्रयोग गरिने कोड वा वाक्य रचनाको रूपमा परिभाषित गर्न सकिन्छ।

सामान्यतया, यो कम्प्युटरसँग सञ्चार गर्न प्रयोग गरिने औपचारिक भाषा हो। त्यसै गरी, विभिन्न देशहरूमा विभिन्न भाषाहरू छन् जसले मानिसहरूलाई विचार साझा गर्न मद्दत गर्दछ, त्यसैगरी कम्प्युटरहरू पनि।

यी कम्प्युटरको प्रोग्रामिङ बुझ्न र त्यसमा काम गर्नका लागि आविष्कार गरिएका हुन्। सामान्यतया, कम्प्युटर भाषालाई तीन मुख्य कोटीहरूमा वर्गीकृत गर्न सकिन्छ:

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

    यो माइक्रोप्रोसेसरहरूको लागि प्रयोग हुने निम्न-स्तरको भाषा मानिन्छ। र धेरै अन्य प्रोग्रामेबल उपकरणहरू। यो दोस्रो पुस्ताको भाषा हो। यो अपरेटिङ सिस्टम लेख्न र विभिन्न डेस्कटप अनुप्रयोगहरू लेख्नको लागि परिचित छ।

  • मेसिन भाषा

    यो मातृभाषा पहिलो पुस्ताको भाषा हो।यसलाई मेशिन कोड वा वस्तु कोड पनि भनिन्छ, जसमा बाइनरी अंकहरू ० र १ को सेट हुन्छ। यी अंकहरूलाई द्रुत रूपमा व्याख्या गर्ने कम्प्युटर प्रणालीद्वारा बुझिन्छ र पढिन्छ।

  • उच्च-स्तरको भाषा

    यो पुरानो भाषाहरूमा पोर्टेबिलिटी समस्याहरूको कारणले स्थापित भएको हो। कोडले स्थानान्तरण गर्न सकेन यसको मतलब कोड एउटा मेसिनमा लेखिएको थियो। यो भाषा बुझ्न सजिलो छ र धेरै प्रयोगकर्ता-अनुकूल पनि छ।

कम्प्यूटरले बुझ्ने भाषाको भागलाई "बाइनरी" भनिन्छ। अर्कोतर्फ, प्रोग्रामिङ भाषाको बाइनरीमा अनुवादलाई "कम्पाइलिङ" भनिन्छ।

छोटकरीमा, प्रोग्रामिङ भाषाहरूले मानिसहरूलाई कम्प्युटरलाई निर्देशनहरू दिन अनुमति दिन्छ ताकि उनीहरूले तिनीहरूलाई पढ्न र कार्यान्वयन गर्न सकून्। प्रत्येक कम्प्यूटर भाषामा सी भाषा देखि पाइथन सम्मको फरक विशेषताहरू छन्।

यी भाषाहरूले कम्प्युटरहरूलाई ठूला र जटिल डेटालाई अझ प्रभावकारी रूपमा प्रशोधन गर्न सजिलो र छिटो बनाउँदछ। आज संसारमा धेरै प्रोग्रामिङ भाषाहरू छन्। यी मध्ये केही जाभा, पाइथन, HTML, C, C++, र SQL समावेश छन्।

C++ भाषा के हो?

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

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

यसले प्रोग्रामरहरूलाई प्रणाली स्रोत र मेमोरीमा उच्च नियन्त्रण गर्न अनुमति दिन्छ। तपाईले सोच्न सक्नुहुन्छ कि यो पहिले नै अद्यावधिक गरिएको छ। यद्यपि, भाषा 2011, 2014, र 2017 मा तीन पटक अद्यावधिक गरिएको छ। यो C++ 11, C++ 14, C++ 17 बाट गयो।

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

किन धेरैले C++ प्रयोग गर्छन्?

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

यसको उच्च कार्यसम्पादनका कारण, यो भाषा खेल, डेस्कटप एप, ब्राउजर र अपरेटिङ सिस्टमहरू विकास गर्न प्रयोग गरिन्छ। यस भाषाको अर्को विशेषता यो हो कि यो पोर्टेबल छ र यसले धेरै प्लेटफर्महरूमा अनुकूलन गर्न सक्ने अनुप्रयोगहरू सिर्जना गर्न अनुमति दिन्छ।

यद्यपि यो सिक्नको लागि सबैभन्दा चुनौतीपूर्ण भाषाहरू मध्ये एक हो भनेर चिनिन्छ, यसका फाइदाहरू छन्। यसको बहु-प्रतिमानात्मक भाषा र यसको कार्यहरू थप उन्नत वाक्य रचनाको कारणले अरूलाई भन्दा बुझ्न यो धेरै चुनौतीपूर्ण छ।

यदि तपाइँ C++ भाषा सिक्न सक्षम हुनुहुन्छ भने, यो सिक्न धेरै हुन्छयो पछि अन्य प्रोग्रामिङ भाषाहरू, जस्तै Java र Python।

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

C र C++ भाषाहरूमा नल क्यारेक्टर, एक नल पोइन्टर, र एक नल स्टेटमेन्ट हुन्छ (अर्धविराम (;) द्वारा प्रतिनिधित्व गरिएको)।

नल के हो C++?

नललाई अन्तर्निर्मित स्थिर मानिन्छ जसले शून्यको मान राख्छ। यो कम्प्युटर प्रोग्रामिङमा एक स्थिर र एक सूचक दुवै हो।

डेटाबेसमा हुँदा, शून्य मान हो। मान Null ले कुनै मान अवस्थित छैन भनेर संकेत गर्छ। जब Null मानको रूपमा प्रयोग गरिन्छ, यो मेमोरी स्थान होइन।

यसबाहेक, नल क्यारेक्टर बिना, स्ट्रिङ उचित रूपमा समाप्त गर्न सक्षम हुनेछैन, धेरै समस्याहरू निम्त्याउँछ। Null क्यारेक्टरको विभिन्न प्रोग्रामिङ भाषाहरूमा धेरै फरक प्रयोगहरू छन्।

प्रश्न यो हो कि तपाईंले C++ मा Null कसरी लेख्नुहुन्छ। ठिक छ, यदि नल स्थिरांकमा पूर्णांक प्रकार छ भने, यसलाई क्रमको मानमा रूपान्तरण गर्न सकिन्छ।

यो पनि हेर्नुहोस्: छैन VS छैन: अर्थ र amp; उपयोग भिन्नताहरू - सबै भिन्नताहरू

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

यसबाहेक, C# मा,एक प्रोग्रामिङ भाषा, Null को अर्थ "कुनै वस्तु" छैन। यस भाषामा, यो स्थिर शून्य जस्तै होइन।

यद्यपि C++ भाषामा, Null क्यारेक्टर एउटा अद्वितीय आरक्षित पोइन्टर मान हो जसले कुनै पनि वैध डेटा वस्तुलाई संकेत गर्दैन। साथै, C++ भाषामा, Null प्रकार्यहरू पोइन्टर चरहरूलाई मान तोक्ने तरिका मात्र हुन्।

Null र Zero बीचको भिन्नता

Null ले शून्यको मान राखेको हुनाले, मानिसहरू प्रायः नल र शून्य बीचको भिन्नता कसरी गर्ने भन्ने कुरामा अलमलमा पर्छन्।

यो पनि हेर्नुहोस्: गुगल र क्रोम एप बीच के भिन्नता छ? मैले कुन प्रयोग गर्नुपर्छ? (लाभहरू) - सबै भिन्नताहरू

C++ मा नल भनेको एउटा म्याक्रो मात्र हो जसले नल पोइन्टर स्थिरतालाई परिभाषित गर्दछ र सामान्यतया शून्य मानको हुन्छ। यद्यपि, Null ले तपाईंलाई एउटा महत्त्वपूर्ण मान दिन्छ कि चरले कुनै वजन राख्दैन।

जबकि, शून्य आफैमा एक मान हो, र यो कसरी प्रवाह अनुक्रम मा रहन्छ। अर्को शब्दमा, शून्य भनेको संख्याको मान हो, जबकि नल भनेको खाली हो।

तपाईँ यसलाई रेफ्रिजरेटरको लागि समर्पित निश्चित ठाउँको रूपमा सोच्न सक्नुहुन्छ । यदि फ्रिज छ तर यसमा केहि छैन भने मान शून्य हो। अर्कोतर्फ, यदि फ्रिजको लागि समर्पित ठाउँमा कुनै पनि फ्रिज छैन भने, मान शून्य हुन्छ।

C++ मा Nullptr को अर्थ के हो?

"Nullptr" कुञ्जी शब्दले शून्य सूचक मानलाई प्रतिनिधित्व गर्दछ। वस्तु ह्यान्डल, भित्री सूचक, वा नेटिभ पोइन्टर प्रकारले वस्तुलाई संकेत गर्दैन भनेर संकेत गर्न तपाईंले शून्य सूचक मान प्रयोग गर्नुहुनेछ।

केवल पोइन्टरहरूले मेमोरी स्थानहरू समात्न सक्छन्, र मानहरूले सक्दैनन्।

पहिले, हामीले पोइन्टर के हो भनेर बुझ्न आवश्यक छ। यो एउटा चर हो जसले मेमोरी स्थान राख्छ।

A Null Pointer भनेको कुनै पनि कुरालाई जानाजानी संकेत गर्ने सूचक हो। यदि तपाईसँग कुनै ठेगाना छैन जुन तपाईले सूचकलाई तोक्न सक्नुहुन्छ, तपाईले Null प्रयोग गर्न सक्नुहुन्छ। नल मानले पोइन्टर्स भएका एपहरूमा मेमोरी चुहावट र क्र्यास हुनबाट जोगाउँछ।

यसबाहेक, Nullptr को लागी जाँच गर्न, तपाईले सूचक मान C++ मा शून्य छ कि छैन भनेर जाँच गर्न सर्तको रूपमा प्रयोग गर्न सक्नुहुन्छ। तार्किक अभिव्यक्तिहरूमा प्रयोग गर्दा, नल पोइन्टहरूलाई गलत रूपमा मूल्याङ्कन गरिन्छ।

यसैले, यदि यो शून्य छ कि छैन भनेर जाँच गर्नको लागि यदि कथन अवस्थामा दिइएको सूचक राख्न सक्छ। छोटकरीमा, Nullptr एक सूचक-प्रकार कुञ्जी शब्द हो जसले शून्य एउटा ठेगानाको रूपमा प्रतिनिधित्व गर्दछ।

सामान्य प्रश्न हो किन Nullptr आवश्यक छ जब त्यहाँ पहिले नै शून्य वर्ण छ। त्यो किनभने, C++ 11 मा, Nullptr एक शून्य सूचक स्थिर छ, र यो आवश्यक छ किनभने यसले प्रकार सुरक्षा सुधार गर्दछ।

के Null र Nullptr एउटै हो?

होइन। तिनीहरू छैनन्। पहिले तिनीहरूको भिन्नताहरू थाहा पाउन तलको तालिका हेर्नुहोस्।

Nullptr Null
शून्य प्रतिनिधित्व गर्ने कुञ्जी शब्द शून्यको मूल्य
शून्यलाई ठेगानाको रूपमा प्रतिनिधित्व गर्दछ मानको रूपमा प्रतिनिधित्व गर्दछ पूर्णांक
नयाँ र सुझाव गरिएको प्रकार्य पुरानो रdeprecated function
True Pointer type Integer

constant zero

<का लागि उपनामको रूपमा लागू गरियो 0>कुञ्जी शब्दहरूलाई ध्यान दिनुहोस् ताकि तपाईं भ्रमित हुनुहुन्न।

Null लाई "manifest constant" मानिन्छ जुन वास्तवमा एक पूर्णांक हो र एक निहित रूपान्तरणको कारणले सूचकलाई तोक्न सकिन्छ।

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

यदि तपाईंले अझै पनि बुझ्नुभएको छैन भने, यो भिडियो हेर्नुहोस्।

यस भिडियोले स्ट्रिमरको साथमा के र कहिले Null वा nullptr-कोड प्रयोग गर्नुपर्छ भन्ने राम्ररी व्याख्या गर्दछ।

के तपाइँ Null को सट्टा Nullptr प्रयोग गर्न सक्नुहुन्छ?

हो जब तिनीहरु समान छैनन्, त्यहाँ तपाइँको लागि Null को सट्टा Nullptr प्रयोग गर्ने तरिका छ।

यसबाहेक, Nullptr C++ मा नयाँ किवर्ड हो जुन प्रतिस्थापन हुन सक्छ। खाली। Nullptr ले सुरक्षित प्रकार सूचक मान दिन्छ जुन खाली सूचक प्रतिनिधित्व गर्दछ।

कसैले Null प्रयोग गर्नबाट जोगिन्छन् किनभने यो अनुपयुक्त छ , यो आजकल कम सामान्य छ किनभने धेरै कोडरहरूले Null को सट्टा Nullptr प्रयोग गर्ने सुझावलाई पछ्याउँदै छन्।

अतिरिक्त, तपाईंले सन्दर्भ प्रयोग गर्नु अघि सूचक वा ह्यान्डल सन्दर्भ शून्य छ कि छैन भनेर परीक्षण गर्न Nullptr कुञ्जी शब्द प्रयोग गर्न सक्नुहुन्छ।

के तपाइँ एक Nullptr को सन्दर्भ गर्न सक्नुहुन्छ?

तपाईले nullptr लाई सम्मान गर्न सक्नुहुन्छ। यदि तपाईंले त्यसो गर्नुभयो भने, तपाईंले सूचकले संकेत गरिरहेको ठेगानामा मान पहुँच गर्न सक्नुहुन्छ।

कम्प्यूटर भाषाहरूमा, डिरेफरेन्सिङलाई पोइन्टरद्वारा पोइन्ट गरिएको मेमोरी स्थानमा रहेको डाटा पहुँच वा हेरफेर गर्न प्रयोग गरिन्छ।

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

कम्प्यूटर प्रोग्रामिङमा, एक dereference अपरेटर भनेको पोइन्टर चरमा काम गर्ने हो। यसले भ्यारीएबलको मान द्वारा संकेत गरिएको मेमोरीमा स्थान मान फर्काउँछ। C++ प्रोग्रामिङ भाषामा, अपरेट गरिएको डिफरेन्सलाई एस्टेरिस्क (*) सँग प्रतीकात्मक रूपमा चित्रण गरिएको छ।

अन्तिम विचारहरू

कसैले शून्यलाई म्याक्रोको रूपमा परिभाषित गर्न सक्छ जुन शून्य पोइन्टरमा उत्पन्न हुन्छ, जसको मतलब त्यहाँ चरको लागि कुनै ठेगाना छैन। Null C भाषामा C++ मा पास गरिएको पुरानो म्याक्रो हो।

यस बीचमा, Nullptr C++11 मा प्रस्तुत गरिएको नयाँ संस्करण हो र यसलाई Null को प्रतिस्थापनको रूपमा लिइन्छ।

त्यसैले, आज, यो सिफारिस गरिएको छ कि तपाईंले विगतमा वा यो लेखनको रूपमा पनि Null प्रयोग गर्ने ठाउँहरूमा Nullptr प्रयोग गर्न सुरु गर्नुहोस्।

    यस लेखको छोटो संस्करण हेर्न यहाँ क्लिक गर्नुहोस्।

    Mary Davis

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