c++关于引用

来源:百度知道 编辑:UC知道 时间:2024/05/28 14:41:01
在C++里面用到对象的引用的时候一定要初始化啊?
而且我发现 如果初始化完了以后 例如
string a="asdf";
string &temp=a;
然后a的地址就是和temp的地址一样了
最要命的是
string b="qwer";
temp=b;
了以后 虽然temp的内容变成了qwer 但是temp的地址还是a的地址

这可怎么办才好 我要让它变成b的地址该怎么办

。。。
你输出cout<<a<<endl;看看就明白了

&是按引用传递吧,只是一个别名,就是temp是a的别名,temp怎么变a就怎么变。
传地址的是指针,可以是
string a="asdf";
string *temp=a;
这是temp的地址就是a的地址了。

你就别用引用呀,很多程序错误就是引用和指针的乱用导致的

&引用的性质:
1:必须初始化,他永远都是非空的。
2:不可修改,他初始化后是不能被再此修改的。&a = b,那么a和b在理解时可以理解为一个变量,只是不同名,改变任何一个都是在改变另外一个。
只要理解了引用的性质你就能理解你的问题了。