एक रेफरेंस वेरिएबल एक उपनाम है, यानी पहले से मौजूद वेरिएवल के लिए दूसरा नाम। एक बार जब रेफरेंस को किसी वेरिएवल के साथ आरंभ कर दिया जाता है, तो या तो वेरिएवल का नाम या रेफरेंस का नाम वेरिएवल को संदर्भित करने के लिए उपयोग किया जा सकता है।
रेफरेंस बनाम पॉइंटर्स
रेफरेंस को अक्सर पॉइंटर्स के साथ भ्रमित किया जाता है, लेकिन रेफरेंस और पॉइंटर्स के बीच तीन प्रमुख अंतर हैं -
आप नल रेफरेंस नहीं रख सकते। आपको हमेशा यह मानकर चलना चाहिए कि एक रेफरेंस स्टोरेज के एक वैध टुकड़े से जुड़ा हुआ है।
एक बार जब किसी ऑब्जेक्ट के लिए रेफरेंस आरंभ हो जाता है, तो इसे दूसरे ऑब्जेक्ट को संदर्भित करने के लिए नहीं बदला जा सकता। पॉइंटर्स को किसी भी समय दूसरे ऑब्जेक्ट पर इंगित किया जा सकता है।
रेफरेंस को बनाते समय आरंभ किया जाना चाहिए। पॉइंटर्स को किसी भी समय आरंभ किया जा सकता है।
C++ में रेफरेंस निर्माण
वेरिएवल के नाम को मेमोरी में वेरिएवल के स्थान से जुड़े लेबल के रूप में सोचें। आप तब रेफरेंस को उस मेमोरी स्थान से जुड़े दूसरे लेबल के रूप में सोच सकते हैं। इसलिए, आप मूल वेरिएवल नाम या रेफरेंस के माध्यम से वेरिएवल की सामग्री तक पहुंच सकते हैं। उदाहरण के लिए, मान लें कि हमारे पास निम्नलिखित उदाहरण है -
int i = 17;
हम i के लिए रेफरेंस वेरिएबल्स घोषित कर सकते हैं।
int& r = i;
इन घोषणाओं में & को रेफरेंस के रूप में पढ़ें। इस प्रकार, पहली घोषणा को "r, i से आरंभ एक इंटीजर रेफरेंस है" के रूप में पढ़ें।
उदाहरण कोड
#include <iostream>
using namespace std;
int main() {
// सरल वेरिएवल घोषित करें
int i;
double d;
// रेफरेंस वेरिएवल घोषित करें
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