सूचक और संदर्भ के बीच अंतर

लेखक: Laura McKinney
निर्माण की तारीख: 1 अप्रैल 2021
डेट अपडेट करें: 1 जुलाई 2024
Anonim
What is the Difference Between a Pointer and a Reference C++
वीडियो: What is the Difference Between a Pointer and a Reference C++

विषय


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

  1. तुलना चार्ट
  2. परिभाषा
  3. मुख्य अंतर
  4. निष्कर्ष

तुलना चार्ट

तुलना के लिए आधारसूचकसंदर्भ
बुनियादीसूचक एक चर का मेमोरी एड्रेस है।संदर्भ एक चर के लिए एक उपनाम है।
रिटर्नपॉइंटर वेरिएंट पॉइंटर वैरिएबल में रखे पते पर स्थित मान लौटाता है जो कि पॉइंटर साइन * से पहले होता है।संदर्भ चर संदर्भ चिह्न और पूर्ववर्ती चर का पता देता है।
ऑपरेटर्स *, ->&
अशक्त संदर्भसूचक चर NULL को संदर्भित कर सकता है।संदर्भ चर NULL का संदर्भ कभी नहीं दे सकता।
प्रारंभ एक असिंचित पॉइंटर बनाया जा सकता है।एक असंवैधानिक संदर्भ कभी नहीं बनाया जा सकता है।
प्रारंभ का समयकार्यक्रम में किसी भी बिंदु पर सूचक चर को आरंभ किया जा सकता है।संदर्भ चर को इसके निर्माण के समय केवल आरंभ किया जा सकता है।
reinitializationपॉइंटर वैरिएबल को आवश्यकता के अनुसार कई बार रीइंस्ट्रिक्ट किया जा सकता है।संदर्भ चर को कार्यक्रम में फिर से पुन: व्यवस्थित नहीं किया जा सकता है।


पॉइंटर की परिभाषा

एक "पॉइंटर" एक चर है जो दूसरे चर की मेमोरी लोकेशन रखता है। सूचक चर द्वारा उपयोग किए गए ऑपरेटर * और -> हैं। पॉइंटर वैरिएबल की घोषणा में आधार डेटा प्रकार होता है जिसके बाद sign * का चिन्ह और परिवर्तनशील नाम होता है।

प्रकार * var_name;

एक उदाहरण की मदद से पॉइंटर को समझते हैं।

int a = 4; int * ptr = & a; cout <जबकि, संदर्भ ऑपरेटर & है।

  • एक पॉइंटर वैरिएबल यदि किसी वैरिएबल के पते को नहीं ले जाता है तो यह शून्य की ओर इशारा करता है। दूसरी ओर, एक संदर्भ चर कभी शून्य का संदर्भ नहीं दे सकता है।
  • आप हमेशा एक इकाई संकेत सूचक चर बना सकते हैं, लेकिन हम एक संदर्भ बनाते हैं जब हमें कुछ चर के उपनाम की आवश्यकता होती है ताकि आप कभी भी एक इकाईगत संदर्भ नहीं बना सकें।
  • आप एक पॉइंटर को फिर से संगठित कर सकते हैं, लेकिन एक बार जब आप इनिशियलाइज़ कर लेते हैं तो आप इसे फिर से रीइंक्रिटाइज़ नहीं कर सकते हैं।
  • आप एक खाली पॉइंटर बना सकते हैं और इसे किसी भी समय इनिशियलाइज़ कर सकते हैं लेकिन आपको रिफ़रेंस इनिशियलाइज़ करना होगा जब आप रेफ़रेंस बनाएँगे।
  • ध्यान दें:


    जावा पॉइंटर्स का समर्थन नहीं करता है।

    निष्कर्ष

    सूचक और संदर्भ दोनों का उपयोग किसी अन्य चर को इंगित करने या संदर्भित करने के लिए किया जाता है। लेकिन उनके उपयोग और कार्यान्वयन में भिन्नता है।