据我所知,引用是一个保存对象地址的变量。因此我不明白这一点:
#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 必须将更改返回给我。谁能解释我为什么会这样?