C++ मधील Null आणि Nullptr मधील फरक काय आहे? (तपशीलवार) – सर्व फरक

 C++ मधील Null आणि Nullptr मधील फरक काय आहे? (तपशीलवार) – सर्व फरक

Mary Davis

“Nullptr” हा एक कीवर्ड मानला जातो जो पत्ता म्हणून शून्य दर्शवतो, तर “Null” हे शून्य पूर्णांक म्हणून मूल्य आहे.

तुम्ही प्रोग्रामर असाल, तर तुम्हाला कदाचित माहित असेल की कोड करण्यासाठी संगणक भाषा समजून घेणे किती महत्त्वाचे आहे. परंतु काहीवेळा, हे थोडे गोंधळात टाकणारे असू शकते आणि तुम्ही दोन गोष्टींमध्ये मिसळून जाऊ शकता.

C++ भाषेतील Null आणि Nullptr साठीही असेच आहे. या दोन शब्दांचा अर्थ काय आहे ते मी तुम्हाला सांगतो आणि त्यांची कार्ये तुम्हाला त्यांच्यातील फरक आणि त्यांचा वापर समजून घेण्यास मदत करतात.

चला आत जाऊया!

संगणक भाषा काय आहेत?

संगणक भाषा प्रोग्राम आणि विशिष्ट अनुप्रयोग लिहिण्यासाठी वापरल्या जाणार्‍या कोड किंवा वाक्यरचना म्हणून परिभाषित केल्या जाऊ शकतात.

मुळात, ही एक औपचारिक भाषा आहे जी संगणकाशी संवाद साधण्यासाठी वापरली जाते. त्याच प्रकारे, वेगवेगळ्या देशांमध्ये वेगवेगळ्या भाषा आहेत ज्या लोकांना विचार सामायिक करण्यात मदत करतात, त्याचप्रमाणे संगणक देखील.

याचा शोध संगणकाचे प्रोग्रामिंग समजून घेण्यासाठी आणि त्यावर कार्य करण्यासाठी केला जातो. सर्वसाधारणपणे, संगणक भाषा तीन मुख्य श्रेणींमध्ये वर्गीकृत केली जाऊ शकते:

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

    ही मायक्रोप्रोसेसरसाठी वापरली जाणारी निम्न-स्तरीय भाषा मानली जाते. आणि इतर अनेक प्रोग्राम करण्यायोग्य उपकरणे. ही दुसऱ्या पिढीची भाषा आहे. हे ऑपरेटिंग सिस्टम लिहिण्यासाठी आणि भिन्न डेस्कटॉप अनुप्रयोग लिहिण्यासाठी ओळखले जाते.

  • मशीन भाषा

    ही मूळ भाषा पहिल्या पिढीची भाषा आहे.याला मशीन कोड किंवा अगदी ऑब्जेक्ट कोड म्हणतात, ज्यामध्ये बायनरी अंकांचा 0 आणि 1 संच असतो. हे अंक संगणक प्रणालीद्वारे समजले आणि वाचले जातात जे त्यांचा त्वरीत अर्थ लावतात.

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

    हे जुन्या भाषांमधील पोर्टेबिलिटी समस्यांमुळे स्थापित केले गेले आहे. कोड हस्तांतरित करू शकत नाही याचा अर्थ कोड एका मशीनवर लिहिलेला होता. ही भाषा समजण्यास सोपी आहे आणि खूप वापरकर्ता-अनुकूल आहे.

संगणकाला समजत असलेल्या भाषेचा भाग "बायनरी" म्हणून ओळखला जातो. दुसरीकडे, बायनरीमध्ये प्रोग्रामिंग भाषेचे भाषांतर "कंपाइलिंग" म्हणून ओळखले जाते.

थोडक्यात, प्रोग्रामिंग भाषा लोकांना संगणकांना सूचना देऊ देते जेणेकरून ते त्या वाचू शकतील आणि कार्यान्वित करू शकतील. प्रत्येक संगणकाच्या भाषेत सी भाषेपासून पायथनपर्यंतची विशिष्ट वैशिष्ट्ये आहेत.

या भाषा संगणकांना मोठ्या आणि जटिल डेटावर अधिक कार्यक्षमतेने प्रक्रिया करणे सोपे आणि जलद बनवतात. आज जगात अनेक प्रोग्रामिंग भाषा आहेत. यापैकी काहींमध्ये Java, Python, 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++?

शून्य हे बिल्ट-इन स्थिरांक मानले जाते जे शून्याचे मूल्य धारण करते. कंप्युटर प्रोग्रॅमिंगमध्‍ये हे स्थिर आणि पॉइंटर दोन्ही आहे.

डेटाबेसमध्ये असताना, शून्य हे मूल्य असते. शून्य मूल्य सूचित करते की कोणतेही मूल्य अस्तित्वात नाही. जेव्हा नल हे मूल्य म्हणून वापरले जाते, तेव्हा ते मेमरी स्थान नसते.

शिवाय, शून्य वर्णाशिवाय, स्ट्रिंग योग्यरित्या संपुष्टात येऊ शकत नाही, ज्यामुळे अनेक समस्या निर्माण होतात. निरनिराळ्या प्रोग्रॅमिंग भाषांमध्ये नल कॅरेक्टरचे वेगवेगळे उपयोग आहेत.

प्रश्न हा आहे की तुम्ही C++ मध्ये Null कसे लिहाल. बरं, जर शून्य स्थिरांकामध्ये पूर्णांक प्रकार असेल, तर ते क्रमवारीच्या मूल्यामध्ये रूपांतरित केले जाऊ शकते.

उदाहरणार्थ, डेटाबेसमध्ये डेटा व्हॅल्यू अस्तित्त्वात नाही हे दर्शविण्यासाठी विशिष्ट मार्कर म्हणून स्ट्रक्चर्ड क्वेरी लँग्वेज (SQL) मध्ये हे वर्ण, “नल” वापरले जाते. रिलेशनल डेटाबेस म्हणजे जेव्हा विशिष्ट स्तंभातील मूल्य अज्ञात किंवा गहाळ असते.

शिवाय, C# मध्ये,एक प्रोग्रामिंग भाषा, नल म्हणजे "कोणताही वस्तू नाही." या भाषेत, ते स्थिर शून्यासारखे नाही.

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

नल आणि झिरो मधील फरक

नल हे शून्य मूल्य धारण करत असल्याने, लोक सहसा नल आणि शून्य मध्ये फरक कसा करायचा याबद्दल गोंधळात पडतात.

C++ मधील नल हा फक्त एक मॅक्रो आहे जो शून्य पॉइंटर स्थिरांक परिभाषित करतो आणि सामान्यत: शून्य मूल्याचा असतो. तथापि, व्हेरिएबल कोणतेही वजन धरत नाही हे दर्शवणारे नल तुम्हाला महत्त्वपूर्ण मूल्य देते.

तर, शून्य हे स्वतःच एक मूल्य आहे आणि ते संपूर्ण प्रवाह क्रमात असेच राहील. दुसऱ्या शब्दांत, शून्य म्हणजे संख्या मूल्य स्वतःच, तर शून्य म्हणजे रिक्त.

तुम्ही याचा विचार करू शकता रेफ्रिजरेटरसाठी समर्पित विशिष्ट जागा . जर फ्रीज असेल पण त्यात काहीही नसेल तर मूल्य शून्य आहे. दुसरीकडे, फ्रीजसाठी समर्पित केलेल्या जागेत फ्रीजच नसेल, तर मूल्य शून्य आहे.

C++ मध्ये Nullptr चा अर्थ काय आहे?

"Nullptr" कीवर्ड शून्य पॉइंटर मूल्य दर्शवतो. ऑब्जेक्ट हँडल, इंटिरियर पॉइंटर किंवा मूळ पॉइंटर प्रकार ऑब्जेक्टकडे निर्देश करत नाही हे दर्शविण्यासाठी तुम्ही नल पॉइंटर मूल्य वापराल.

फक्त पॉइंटर मेमरी स्थाने धारण करू शकतात आणि मूल्ये धरू शकत नाहीत.

प्रथम, आपल्याला पॉइंटर म्हणजे काय हे समजून घेणे आवश्यक आहे. हे एक व्हेरिएबल आहे जे मेमरी स्थान धारण करते.

नल पॉइंटर हा एक पॉइंटर आहे जो हेतुपुरस्सर काहीही दर्शवत नाही. तुमच्याकडे असा पत्ता नसेल जो तुम्ही पॉइंटरला नियुक्त करू शकता, तर तुम्ही Null वापरू शकता. शून्य मूल्य पॉइंटर असलेल्या अनुप्रयोगांमध्ये मेमरी लीक आणि क्रॅश टाळते.

शिवाय, Nullptr तपासण्यासाठी, तुम्ही पॉइंटर मूल्य C++ मध्ये शून्य आहे का हे तपासण्यासाठी अट म्हणून वापरू शकता. तार्किक अभिव्यक्तींमध्ये वापरल्यास, शून्य पॉइंटर्सचे खोटे म्हणून मूल्यांकन केले जाते.

म्हणून, दिलेला पॉइंटर तो शून्य आहे की नाही हे तपासण्यासाठी if स्टेटमेंट कंडिशनमध्ये ठेवू शकतो. थोडक्यात, Nullptr हा पॉइंटर-प्रकारचा कीवर्ड आहे जो शून्य पत्ता म्हणून दर्शवतो.

अगोदरच शून्य वर्ण असताना Nullptr का आवश्यक आहे हा एक सामान्य प्रश्न आहे. कारण, C++ 11 मध्ये, Nullptr एक शून्य पॉइंटर स्थिरांक आहे आणि ते आवश्यक आहे कारण ते प्रकार सुरक्षितता सुधारते.

Null आणि Nullptr समान आहेत का?

नाही. ते नाहीत. त्यांच्यातील फरक जाणून घेण्यासाठी खालील सारणी पहा.

Nullptr Null
शून्य दर्शवणारे कीवर्ड शून्यचे मूल्य
शून्य एक पत्ते म्हणून दर्शवितो मूल्याचे प्रतिनिधित्व करतो पूर्णांक
नवीन आणि सुचवलेले कार्य जुने आणिनापसंत फंक्शन
ट्रू पॉइंटर प्रकार पूर्णांकासाठी उपनाम म्हणून लागू केले आहे

स्थिर शून्य

कीवर्ड्सची नोंद घ्या जेणेकरून तुमचा गोंधळ होणार नाही.

नल हा एक "मॅनिफेस्ट कॉन्स्टंट" मानला जातो जो प्रत्यक्षात पूर्णांक आहे आणि अव्यक्त रूपांतरणामुळे पॉइंटरला नियुक्त केला जाऊ शकतो.

जेव्हा Nullptr हा एक कीवर्ड आहे जो स्वयं-परिभाषित प्रकारच्या मूल्याचे प्रतिनिधित्व करतो आणि तो पॉइंटरमध्ये रूपांतरित होऊ शकतो परंतु पूर्णांकांमध्ये नाही. Nullptr हा साधारणपणे शून्य पॉइंटर असतो आणि तो नेहमी एकच असतो तुम्ही पूर्णांकाला नियुक्त करण्याचा प्रयत्न केल्यास, यामुळे त्रुटी निर्माण होतील.

तुम्हाला अजूनही ते समजत नसेल, तर हा व्हिडिओ पहा.

तुम्ही स्ट्रीमरसह Null किंवा nullptr-कोड काय आणि केव्हा वापरावे हे या व्हिडिओमध्ये पूर्णपणे स्पष्ट केले आहे.

तुम्ही Null ऐवजी Nullptr वापरू शकता का?

होय . ते सारखे नसताना, तुमच्यासाठी Null ऐवजी Nullptr वापरण्याचा एक मार्ग आहे.

याशिवाय, Nullptr हा C++ मधील नवीन कीवर्ड आहे जो बदलू शकतो. निरर्थक. Nullptr एक सुरक्षित प्रकार पॉइंटर मूल्य देते जे रिक्त पॉइंटरचे प्रतिनिधित्व करते.

जरी काहीजण शून्य वापरणे टाळतात कारण ते अनुपयुक्त आहे , आजकाल हे कमी सामान्य आहे कारण बरेच कोडर Null ऐवजी Nullptr वापरण्याच्या सूचनेचे पालन करत आहेत.

याव्यतिरिक्त, संदर्भ वापरण्यापूर्वी पॉइंटर किंवा हँडल संदर्भ शून्य आहे की नाही हे तपासण्यासाठी तुम्ही Nullptr कीवर्ड वापरू शकता.

तुम्ही Nullptr संदर्भित करू शकता?

तुम्ही nullptr चा आदर करू शकता. तुम्ही असे केल्यास, पॉइंटर ज्या पत्त्याकडे निर्देश करत आहे त्या पत्त्यावरील मूल्यामध्ये तुम्ही प्रवेश करू शकता.

संगणक भाषांमध्ये, पॉइंटरद्वारे निर्देशित केलेल्या मेमरी स्थानामध्ये असलेल्या डेटामध्ये प्रवेश करण्यासाठी किंवा हाताळण्यासाठी डीरेफरन्सिंगचा वापर केला जातो.

तथापि, तुम्ही हे C भाषेत करू शकत नाही . नल पॉइंटर अर्थपूर्ण ऑब्जेक्टकडे निर्देश करत नाही, डिरेफरन्सचा प्रयत्न, जो संग्रहित डेटामध्ये प्रवेश करत आहे. नल पॉइंटर सहसा रन-टाइम त्रुटी किंवा त्वरित प्रोग्राम क्रॅशकडे नेतो.

कॉम्प्युटर प्रोग्रामिंगमध्ये, डिरेफरन्स ऑपरेटर हा पॉइंटर व्हेरिएबलवर काम करतो. हे मेमरीमधील स्थान मूल्य व्हेरिएबलच्या मूल्याद्वारे निर्देशित करते . C++ प्रोग्रामिंग लँग्वेजमध्ये, डीफरन्स ऑपरेटेड हे तारांकन (*) सह प्रतीक आहे.

अंतिम विचार

कोणीही शून्य पॉइंटरला उत्पन्न देणारा मॅक्रो म्हणून नल परिभाषित करू शकतो, याचा अर्थ त्या व्हेरिएबलसाठी कोणताही पत्ता नाही. नल हा C भाषेतील जुना मॅक्रो आहे जो C++ वर जातो.

दरम्यान, Nullptr ही C++ 11 मध्ये सादर केलेली नवीन आवृत्ती आहे आणि ती Null च्या बदली म्हणून आहे.

हे देखील पहा: OpenBSD VS FreeBSD ऑपरेटिंग सिस्टम: सर्व फरक स्पष्ट केले (भेद आणि वापर) - सर्व फरक

म्हणून, आज, अशी शिफारस केली जाते की ज्या ठिकाणी तुम्ही भूतकाळात किंवा या लेखनाच्या ऐवजी Null वापरत असाल त्या ठिकाणी तुम्ही Nullptr वापरणे सुरू करा.

    या लेखाची संक्षिप्त आवृत्ती पाहण्यासाठी येथे क्लिक करा.

    हे देखील पहा: ग्लॅडिएटर/रोमन रॉटवेलर्स आणि जर्मन रॉटवेलर्समध्ये काय फरक आहे? (स्पष्टीकरण) – सर्व फरक

    Mary Davis

    मेरी डेव्हिस ही एक लेखिका, सामग्री निर्माता आणि विविध विषयांवर तुलनात्मक विश्लेषणात तज्ञ असलेली एक उत्साही संशोधक आहे. पत्रकारितेतील पदवी आणि या क्षेत्रातील पाच वर्षांचा अनुभव असलेल्या मेरीला तिच्या वाचकांपर्यंत निःपक्षपाती आणि सरळ माहिती पोहोचवण्याची आवड आहे. ती तरुण असतानाच तिच्या लेखनाची आवड निर्माण झाली होती आणि तिच्या लेखनातील यशस्वी कारकीर्दीमागे ती एक प्रेरक शक्ती आहे. समजण्यास सोप्या आणि आकर्षक स्वरूपात संशोधन करण्याची आणि निष्कर्ष सादर करण्याची मेरीची क्षमता तिला जगभरातील वाचकांसाठी प्रिय आहे. जेव्हा ती लिहित नाही, तेव्हा मेरीला प्रवास करणे, वाचणे आणि कुटुंब आणि मित्रांसह वेळ घालवणे आवडते.