为什么可以重新设置参考参数

Why a reference parameter can be re-seted?

本文关键字:设置 参考 参数 新设置 为什么      更新时间:2023-10-16

为什么我不能重新设置引用的值,但如果引用是函数参数,我可以这样做?例如,以下代码可以正常工作:

void foo(int& i)
{
}
int main()
{
    int i; foo(i);
    int j; foo(j);
    return 0;
}

这里没有"引用参数重置"。函数引用形式参数甚至不存在,直到您调用函数,每次调用它时都会有一个新的实际参数值,并且可能在堆栈上有一个新位置。每次调用函数时,您都在初始化一个新的引用(作为实际的参数值传递),就像您在示例main()中使用int &k = i;一样。