传递对函数的引用

passing reference to function

本文关键字:引用 函数      更新时间:2023-10-16

我有一个代码,它做的事情类似于下面的例子,我不确定这是否正确,因为可执行文件按预期运行。

// source.cpp
void compute_x(int& ref)
{
    ref = 0;
}
void f(int x) 
{
    int local = x;
    local = 1;
    if (local)
    {
          return copute_x(local);
    }
    else return;
}
int main()
{
    f(2);
    return 0;
}

代码运行,但是,一旦f返回,变量local是否有效?

f返回后,变量local超出范围。

编辑之后:但返回值从函数返回,随后从main返回。

否。变量local无效,因为它的作用域在f函数定义的大括号之间。。。之后它就不存在