c++ - 如何从函数传回一个值?

标签 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;
}

最佳答案

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/

相关文章:

具有许多不同类型的 C++ 调用函数

c++ - C++中的条件运算符

c++ - 我如何为以下代码进行进程同步?

c++ - 如何通过遍历数组来读取和存储实例的值?

c++ - 高性能计算的C++类

c++ - 如何使函数中的引用参数可选(可选缓冲区)

c++ - 更改 SDL 背景

c++ - 在给定范围内查找对值

c++ - 根据 constexpr 条件初始化常量变量

c++ - 使用 cmake 实用程序编译时出错