रेफरेंस (संदर्भ)
जब किसी वेरिएबल को रेफरेंस के रूप में घोषित किया जाता है, तो यह किसी मौजूदा वेरिएबल का वैकल्पिक नाम बन जाता है।
सिंटैक्स
Type &newname = existing_name;
आरंभीकरण
Type &ref = variable_name;
पॉइंटर्स (संकेतक)
पॉइंटर्स का उपयोग किसी वेरिएबल के पते को संग्रहीत करने के लिए किया जाता है।
सिंटैक्स
Type *pointer;
आरंभीकरण
Type *pointer; pointer = &variable_name;
रेफरेंस और पॉइंटर्स के बीच मुख्य अंतर
रेफरेंस किसी मौजूदा वेरिएबल को दूसरे नाम से संदर्भित करने के लिए उपयोग किए जाते हैं, जबकि पॉइंटर्स वेरिएबल के पते को संग्रहीत करने के लिए उपयोग किए जाते हैं।
रेफरेंस को नल मान नहीं दिया जा सकता, लेकिन पॉइंटर को दिया जा सकता है।
एक रेफरेंस वेरिएबल को पास-बाय-वैल्यू द्वारा संदर्भित किया जा सकता है, जबकि एक पॉइंटर को पास-बाय-रेफरेंस द्वारा संदर्भित किया जा सकता है।
रेफरेंस को घोषणा के समय आरंभ किया जाना चाहिए, जबकि पॉइंटर के लिए यह आवश्यक नहीं है।
एक रेफरेंस मूल वेरिएबल के समान मेमोरी एड्रेस साझा करता है लेकिन स्टैक पर कुछ स्थान भी लेता है, जबकि एक पॉइंटर का अपना मेमोरी एड्रेस और स्टैक पर आकार होता है।