मैं कुछ इस स्निपेट में व्यवहार को समझने में परेशानी हो रही हूँ से casted पूर्णांक के संदर्भ:कॉन्स्ट अहस्ताक्षरित int
unsigned int i = 2;
const int &r = i;
std::cout << r << "\n";
i = 100;
std::cout << r << "\n";
पहले प्रिंट बयान 2 देता है मैं उम्मीद के रूप में, लेकिन जब मैं संदर्भित का मूल्य बदल परिवर्तनीय, यह संदर्भ में परिलक्षित नहीं है। दूसरा प्रिंट स्टेटमेंट भी 2 देता है, लेकिन मुझे लगता है कि इसे 100 देना चाहिए?
यदि मैं को में के बजाय परिवर्तनीय i
बना देता हूं, तो यह अपेक्षा करता है कि यह अपेक्षा करता है। यहाँ क्या हो रहा है?
संदर्भ होना नहीं करना चाहिए 'स्थिरांक अहस्ताक्षरित int &r = i;':
अपने डिबगर का उपयोग करके आप तथ्य यह है कि संदर्भ एक पूरी तरह से अलग वस्तु के लिए बात कर रहा है निरीक्षण करने के लिए सक्षम होना चाहिए? –
हां, मुझे लगता है कि यह होना चाहिए, लेकिन मैं जानना चाहता हूं कि यह विशेष स्निपेट इस तरह से क्यों व्यवहार करता है। – KKOrange
... क्या यह अनिर्धारित है? मुझे यह नहीं पता कि यह सच है, अन्य उत्तरों ऐसा लगता है जैसे यह परिभाषित व्यवहार भी है। – KKOrange