私が知る限り、参照はオブジェクトへのアドレスを保持する変数です。したがって、私はこれを理解していません:
#include <iostream>
#include<string>
char* lol[]={"123","abc"};
char* fu(int i){return lol[i];};
int main ()
{
const string& ru=fu(0);
lol[0]="567";
cout<<ru<<endl<<lol[0];
return 0;
}
出力:
123
567
私は期待していました
567
567
私は ru が lol[0] へのアドレスを持っていることを知っているので、lol[0] を変更したとき、ru はその変更を私に返さなければなりませんでした。なぜそれが起こっているのか誰か説明してもらえますか?