如何在 C++ 中将变量从一个函数传递到另一个函数?[已结束]

How do I pass a variable from a function to another in C++? [closed]

提问人:monki_mayn 提问时间:3/25/2023 最后编辑:Remy Lebeaumonki_mayn 更新时间:3/25/2023 访问量:53

问:


编辑问题以包括所需的行为、特定问题或错误以及重现问题所需的最短代码。这将有助于其他人回答这个问题。

8个月前关闭。

#include <iostream>

const double pi{3.14};

double radius()
{
    std::cout << "What is the radius of your circle?\n";
    double radius{};
    std::cin >> radius;

    return radius;
}

void circumfrence()
{
    double circumfrence{2 * pi * radius()};

    std::cout << "The circumfrence of your circle is " << circumfrence << std::endl;
}

void area()
{
    double area{pi * radius() * radius()}
}

我正在尝试将变量从 传递给 ,但似乎无法弄清楚。我知道现在我的代码会运行两次,这不是我想要的。我正在练习使用函数,所以这就是为什么我不只是要求 的局部范围内的半径。radiusradius()area()radius()area()

我尝试执行以下操作以尝试通过引用传递参数,但是在其他函数中不断收到“标识符未定义”错误。

void radius(double& radius)
{
    std::cout << "What is the radius of your circle?\n";
    double radius{};
    std::cin >> radius;
}
C++ 函数 变量 按引用传递

评论


答:

2赞 user253751 3/25/2023 #1

这可能是一个脑洞大开的屁,因为我想你已经知道如何做到这一点:

void area()
{
    double r{radius()};
    double area{pi * r * r};
    std::cout << "The area is " << area << "\n";
}

评论

0赞 user253751 3/25/2023
您也可以选择创建函数的输入参数rarea
0赞 Remy Lebeau 3/25/2023 #2

首先,您不应该将局部变量的名称与声明它们的函数相同。对变量使用唯一名称。

现在,在第一个代码片段中,只需将返回值保存到局部变量,然后根据需要使用它:radius()

void area()
{
    double l_radius{radius()};
    double l_area{pi * l_radius * l_radius};

    std::cout << "The area of your circle is " << l_area << std::endl;
}

在第二个代码片段中,只需删除局部变量,然后直接读入参数:

void radius(double& a_radius)
{
    std::cout << "What is the radius of your circle?\n";
    std::cin >> a_radius;
}

void circumference()
{
    double l_radius{};
    radius(l_radius);

    double l_circumference{2 * pi * l_radius};

    std::cout << "The circumference of your circle is " << l_circumference << std::endl;
}

void area()
{
    double l_radius{};
    radius(l_radius);

    double l_area{pi * l_radius * l_radius};

    std::cout << "The area of your circle is " << l_area << std::endl;
}