4

次のコードを検討してください -

#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;、出力は期待どおりになります。

この異なる動作はなぜですか? 前もって感謝します

4

3 に答える 3