ich einige Probleme habe das Verhalten in diesem Snippet zu verstehen:Konst Verweis auf einen gegossenen int von unsigned int
unsigned int i = 2;
const int &r = i;
std::cout << r << "\n";
i = 100;
std::cout << r << "\n";
Die erste print-Anweisung gibt 2 als ich erwarten würde, aber wenn ich den Wert der referenzierten ändern Variable, es wird nicht in der Referenz wiedergegeben. Die zweite Druckanweisung gibt auch 2, aber ich denke, es sollte 100 geben?
Wenn ich Variable i
in Typ int
statt unsigned int
mache, funktioniert es, wie ich es erwarte. Was geht hier vor sich?
Sollte nicht die Referenz sein 'const unsigned int &r = i;'? –
Ja, ich denke, es sollte so sein, aber ich möchte wissen, warum sich dieser bestimmte Ausschnitt so verhält. – KKOrange
... ist es undefiniert? Ich kann nicht herausfinden, ob das stimmt, die anderen Antworten lassen es auch als definiertes Verhalten erscheinen. – KKOrange