函数在用值传递和引用传递返回值时,内存是如何管理的?
一般函数在栈中为其所声名的返回值类型开辟新空间,函数返回时,返回值被弹出栈,
并赋值为函数调用本身的值。例如以下三种返回值方式:
int Function(int a)
{
...
return a;
}
int *Function(int *a)
{
...
return a;
}
int &Function(int &a)
{
...
return a;
}
根据以上所述,请问:函数名Function在值传递时似乎还有赋值的用处;而在引用传递时,
返回值似乎没有必要,也不太理解返回值a与函数名Function的关系?
Function本身的生命期或作用域如何?
其实,我还是对函数在用值传递和引用传递返回值时,内存是如何管理的问题不太理解,
敬请指点.