मुझे पता है कि संदर्भ किसी भी स्मृति
नहीं बिल्कुल नहीं लेता है। चाहे किसी संदर्भ में संग्रहण हो, निर्दिष्ट नहीं है। यह हो सकता है या यह नहीं हो सकता है। इस विशेष उदाहरण में, इसे भंडारण की आवश्यकता नहीं है, इसलिए एक सामान्य कार्यान्वयन में, यह किसी भी का उपयोग नहीं करता है।
यह एक ही स्मृति स्थान है जो इसे
संदर्भित कर रहा है यही कारण है कि एक अनुलाप या बस एक गलतफहमी की तरह लगता है, आप "बिंदु" क्या मतलब है पर निर्भर करता है को इंगित करेगा। एक संदर्भ ऑब्जेक्ट में को संदर्भित करता है या ऑब्जेक्ट पर बाध्य है। आप इसे चर नाम के उपनाम पर विचार कर सकते हैं। परिवर्तनीय नाम किसी भी स्मृति का उपयोग नहीं करता है।
इस मामले आर में कुछ स्थान की ओर इशारा करते है, लेकिन यह स्मृति में संग्रहीत करने के लिए स्मृति
यह की जरूरत नहीं है में कहीं संग्रहित किया जाना चाहिए।कोड निम्नलिखित पर विचार करें:
int i=10;
int &r = a;
int j = r * 3;
संकलक i * 3
रूप r * 3
व्याख्या कर सकते हैं जैसे कि आप पहली जगह में इतना लिखा था। निर्दिष्ट ऑब्जेक्ट का स्थान संकलन समय पर जाना जाता है, इसलिए स्मृति को उस स्मृति में संग्रहीत करने की आवश्यकता नहीं है जो रन टाइम चीज है।
लेकिन, अन्य स्थितियों में, भंडारण की आवश्यकता हो सकती है। उदाहरण के लिए: गैर-इनलाइन फ़ंक्शन के संदर्भ तर्क पर विचार करें जिसमें बाहरी संबंध है। निर्दिष्ट ऑब्जेक्ट को फ़ंक्शन संकलित होने पर ज्ञात नहीं किया जा सकता है, इसलिए कुछ जानकारी को रन टाइम पर मेमोरी के साथ पास किया जाना चाहिए।
के रूप में संदर्भ उपयोग स्थिरांक पर आंतरिक प्रतिनिधित्व केवल
सूचक है कि सही नहीं है। आंतरिक प्रतिनिधित्व एक सूचक का उपयोग कर सकता है, या यह किसी और चीज का उपयोग कर सकता है, या इसे किसी भी चीज़ का उपयोग करने की आवश्यकता नहीं हो सकती है।
तो, संक्षेप में जवाब देने के लिए
कहाँ संदर्भ चर संग्रहीत हो जाता है
यह अनिर्दिष्ट है। कहीं भी, या कहीं नहीं।
यदि आर एक चर है, तो आर का पता है & r। यह एक संदर्भ नहीं है, सी सी ++ नहीं है। तो यदि आर = और ए, और आर उस पते का प्रतिनिधित्व करता है जहां पते का पता लगाया जाता है। – Tim
'संदर्भ चर कहां संग्रहीत किया जाता है' यह निर्दिष्ट नहीं है। –