引用函数c++中的变量

Referencing a variable in a function c++

本文关键字:变量 c++ 函数 引用      更新时间:2023-10-16

我正在努力确保我理解引用变量的"与"符号的用法。我知道也有人问过其他类似的问题,但我想看看我给出的代码示例是否正确使用了它。

示例代码:

 // function prototype
 GetBalance(float &balance);
int main()
{
    float balance;
    bool choice = true;
    if (choice == true)
         GetBalance(float &balance);
    else
        cout << "error" << endl;
    return 0;
}
GetBalance(float &balance)
{
    cout << "please enter the balance: " << endl;
    cin >> balance;
}

因此,在主函数中声明了浮点变量。

函数GetBalance引用了在主函数中声明的变量。因此,当用户输入余额时,该输入被分配给余额变量。

这是正确的吗?

如果不是,我想做的是可能的吗?

我想将GetBalance函数中输入的金额分配/传递给main()中声明的变量"balance"。

if(choice==true)GetBalance(浮动平衡);

这种用法是错误的,应该纠正如下:

 if (choice == true)
         GetBalance(balance);

除了构造函数外,C++中的所有函数都应该有返回类型。因此,在这种情况下,函数声明和定义必须通过添加返回类型void 进行如下更正

void GetBalance(float &balance);

除此之外,您还必须在程序中添加所需的头文件和名称空间才能进行编译。

#include<iostream>
using namespace std;

变量在C++中是类型敏感的,因此您必须按如下方式更改函数定义中的变量:

void GetBalance(float &balance)
{
    cout << "please enter the balance: " << endl;
    cin >> balance;
}

在您做出上述更改后,此程序将编译。对于您的问题,答案如下:

因此,当用户输入余额时,输入将分配给平衡变量。

这是正确的吗?答:是的

您在中的使用是正确的

GetBalance(float &balance)

方法,但是您需要在main()中调用这样的方法:

GetBalance(balance);

由于类型已在声明中定义。

此外,您可能希望使用进行一些错误检查

cin >> balance;

检查用户是否正在输入浮点值。

编辑您需要像这样的函数返回类型

void GetBalance(float &balance)

答案是你做得不太对。你想要的是类似的东西

float balance;
if(choice == true)
    GetBalance(balance)

这种方式的平衡仍然在main的作用域中,否则它将只在函数调用内部活动。现在你可以在主界面的任何地方使用float了。

既然已经涵盖了这一点,我们可以讨论正在发生的事情。您正在声明一个称为balance的浮点值。这在记忆中留下了一席之地。当您将balance传递给函数GetBalance(float &Balance)时,您将引用内存中的该位置,并直接从该函数修改其值。

从本质上讲,主要问题是在哪里声明了变量,以及在函数调用中包含了一个与号。