如何从函数传回值

How to pass a value back from a function?

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

我现在正在通过在线公开课自己学习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;
}

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

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

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

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

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

你应该使用

a = change(a);

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