如何从函数中传回一个值?

时间:2014-02-12 03:12:15

标签: c++

我现在正在通过在线公开课学习c ++。这是一段我不太了解的简单代码。我理解为什么它最后打印a=3:代码只将a的值传递给change函数,因此change函数无法更改a ,但更改功能中的30在哪里,我该如何打印?谢谢!!

#include<iostream>
using namespace std;

int change(int c)
{
    c=30;
    return c;
}
int main()
{
    int a=3;
    change(a);

    cout<<"a="<<a<<endl;

    return 0;
}

3 个答案:

答案 0 :(得分:2)

c的值存储在临时内存中,该内存在调用函数时分配,并且只能由该特定函数调用访问。

编辑:显然真正的问题是你如何使用返回值。

本质上,函数的返回值在完成执行后“替换”该函数。在这种情况下,change(a)被替换为30,但您应该知道您不能只在代码中键入整数。你必须分配它们。因此,您应该写a = change(a),最后看起来像a = 30。 (或声明另一个整数,即{。int b = change(a))。

这使a的新值成为change()的返回值。 (它不会形成一些疯狂的无限循环,因为change(a)在分配完成之前执行)

答案 1 :(得分:1)

那是因为您没有将返回值分配给变量。

你应该使用

a = change(a);

void change(int &c) // pass c by reference to make it changeable by such function
{
    c=30;
}

答案 2 :(得分:0)

我认为您需要通过此链接更清楚地了解如何将值传递给函数:http://courses.washington.edu/css342/zander/css332/passby.html