संदर्भ चर एक उपनाम है, जो पहले से मौजूद चर का दूसरा नाम है। एक बार किसी संदर्भ को एक चर के साथ प्रारंभ किया जाता है, या तो चर नाम या संदर्भ नाम का उपयोग चर को संदर्भित करने के लिए किया जा सकता है।
संदर्भ बनाम पॉइंटर्स
संदर्भ अक्सर पॉइंटर्स के साथ भ्रमित होते हैं लेकिन संदर्भ और पॉइंटर्स के बीच तीन प्रमुख अंतर हैं -
-
आपके पास NULL संदर्भ नहीं हो सकते। आपको हमेशा यह मानने में सक्षम होना चाहिए कि एक संदर्भ भंडारण के एक वैध टुकड़े से जुड़ा है।
-
एक बार किसी ऑब्जेक्ट के संदर्भ को प्रारंभ करने के बाद, इसे किसी अन्य ऑब्जेक्ट को संदर्भित करने के लिए बदला नहीं जा सकता है। पॉइंटर्स को किसी भी समय किसी अन्य वस्तु की ओर इशारा किया जा सकता है।
-
जब कोई संदर्भ बनाया जाता है तो उसे प्रारंभ किया जाना चाहिए। पॉइंटर्स को किसी भी समय प्रारंभ किया जा सकता है।
C++ में संदर्भ निर्माण
एक चर नाम को स्मृति में चर के स्थान से जुड़े एक लेबल के रूप में सोचें। फिर आप उस स्मृति स्थान से जुड़े दूसरे लेबल के रूप में संदर्भ के बारे में सोच सकते हैं। इसलिए, आप चर की सामग्री को मूल चर नाम या संदर्भ के माध्यम से एक्सेस कर सकते हैं। उदाहरण के लिए, मान लें कि हमारे पास निम्न उदाहरण है -
int i = 17;
हम निम्नानुसार i के लिए संदर्भ चर घोषित कर सकते हैं।
int& r = i;
इन घोषणाओं में संदर्भ के रूप में पढ़ें। इस प्रकार, पहली घोषणा को "r एक पूर्णांक संदर्भ है जो i से आरंभ किया गया है" के रूप में पढ़ें और दूसरी घोषणा को पढ़ें क्योंकि "s एक दोहरा संदर्भ है जिसे d से आरंभ किया गया है।"।
उदाहरण कोड
#include <iostream> using namespace std; int main () { // declare simple variables int i; double d; // declare reference variables int& r = i; double& s = d; i = 5; cout << "Value of i : " << i << endl; cout << "Value of i reference : " << r << endl; d = 11.7; cout << "Value of d : " << d << endl; cout << "Value of d reference : " << s << endl; return 0; }
आउटपुट
Value of i : 5 Value of i reference : 5 Value of d : 11.7 Value of d reference : 11.7