C++,函数返回一个字符串的引用 是什么意思??比如function()的返回值是string &

C++,函数返回一个字符串的引用是什么意思??比如function()的返回值是string&然后我这样子:stringastring=function();那么astr... C++,函数返回一个字符串的引用 是什么意思??比如function()的返回值是string & 然后我这样子:string astring=function(); 那么astring会怎样??变成返回值的引用吗?还是被赋值了而已? 展开
 我来答
仙戈雅3n
推荐于2017-11-21 · TA获得超过5790个赞
知道大有可为答主
回答量:2398
采纳率:75%
帮助的人:897万
展开全部

只是仅仅被赋了值。

如:

string str="Hello,China";
string & function(){
   return str;
}

int main(){
 
  string astring=function();   // 只是仅仅被赋了值。
  string &astring2=function(); // 引用
  return 0;
}
追问
那不应该要string & astring=function()才行吗?新建引用变量不是要加&吗?
追答
是这样子的:function()确实是返回了引用,准确地说,是返回了str的基地址,但是在赋值给左值时,该左值是普通的字符串变量,而该普通变量只能接受具体的值所以编译器就会自动将str的值取出来给astring。反之,如果左值是引用类型,那么左值变量就会指向str的基地址,即我们所说的引用str.
never715
2015-09-05 · TA获得超过942个赞
知道小有建树答主
回答量:1010
采纳率:84%
帮助的人:462万
展开全部
只是被赋值了。function返回的引用会再经过一次赋值拷贝
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式