C++,函数返回一个字符串的引用 是什么意思??比如function()的返回值是string &
C++,函数返回一个字符串的引用是什么意思??比如function()的返回值是string&然后我这样子:stringastring=function();那么astr...
C++,函数返回一个字符串的引用 是什么意思??比如function()的返回值是string & 然后我这样子:string astring=function(); 那么astring会怎样??变成返回值的引用吗?还是被赋值了而已?
展开
2个回答
展开全部
只是仅仅被赋了值。
如:
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.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询