我现在通过在线公开课自学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 = change(a)
,它最终看起来像 a = 30
。 (或声明另一个整数,即 int b = change(a)
)。
这使得a
的新值成为change()
的返回值。 (它不会形成一些疯狂的无限循环,因为 change(a)
在赋值完成之前执行)
关于c++ - 如何从函数传回一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21717821/