传递参考功能

时间:2015-12-17 15:28:51

标签: c++ function reference pass-by-reference

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

// 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;
}

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

2 个答案:

答案 0 :(得分:1)

变量localf返回后超出范围。

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

答案 1 :(得分:0)

否。变量local是无效的,因为它的范围介于f函数defination的括号之间...之后它没有存在