次のコードを検討してください -
#include <iostream>
#include <stdio.h>
const int & retRef() {
return 6;
}
int main()
{
const int& k = retRef();
printf("Value: %d\n", k);
printf("Address: %p\n", &k);
printf("Value: %d\n", k);
return 0;
}
出力は -
Value: 6
Address: 0x7ffd45bf544c
Value: 32692
変数のアドレスを出力した後に値が変更されたのはなぜk
ですか? const int& k = retRef()
行をに置き換えるとconst int& k = 6;
、出力は期待どおりになります。
この異なる動作はなぜですか? 前もって感謝します