【问题标题】:passing reference to function传递对函数的引用
【发布时间】:2016-03-24 03:19:09
【问题描述】:

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

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

代码运行但是,变量localf 返回时有效吗?

【问题讨论】:

  • compute_x 不返回值!您的代码无法编译。
  • 对不起,我的错误,我修改了我的帖子。
  • 我应该再问一次这个问题。需要睡觉。我又做了一个编辑。感谢您的耐心。
  • 更糟糕的是,现在compute_xf 不再返回。
  • @user1810087 这很糟糕吗?我应该先计算 x 然后从f()返回?

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


【解决方案1】:

变量localf 返回后超出范围。

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

【讨论】:

  • 我真的很抱歉,我再次进行了编辑,这一次正是我的问题的确切说明。谢谢!
【解决方案2】:

不。变量 local 无效,因为它的范围在 f 函数定义的大括号之间......之后它就不存在了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-03
    • 2014-03-05
    • 1970-01-01
    相关资源
    最近更新 更多