C++,函数返回一个字符串的引用 是什么意思??比如function()的返回值是string & 然后我这样子:string astring=function(); 那么astring会怎样??变成返回值的引用吗?还是被赋值了而已?
只是仅仅被赋了值。
如:
string str="Hello,China";那不应该要string & astring=function()才行吗?新建引用变量不是要加&吗?
追答是这样子的:function()确实是返回了引用,准确地说,是返回了str的基地址,但是在赋值给左值时,该左值是普通的字符串变量,而该普通变量只能接受具体的值所以编译器就会自动将str的值取出来给astring。反之,如果左值是引用类型,那么左值变量就会指向str的基地址,即我们所说的引用str.