在函数 C++ 中引用变量
Referencing a variable in a function c++
我正在努力确保我了解使用“&”号来引用变量的含义。我知道有人问过其他类似的问题,但我想看看我给出的代码示例是否使用正确。
示例代码:
// 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;
}
所以在main函数中声明了float变量。
函数GetBalance引用了main函数中声明的变量。这样当用户输入余额时,输入被分配给余额变量。
这是正确的吗?
如果不能,我想做的是什么?
我想将在 GetBalance 函数中输入的金额分配/传递给在 main() 中声明的变量 "balance"。
你在
中的用法是正确的
GetBalance(float &balance)
方法,但是您需要在 main() 中调用这样的方法:
GetBalance(balance);
因为声明中已经定义了类型。
此外,您可能希望通过以下方式进行一些错误检查:
cin >> balance;
检查用户输入的是浮点值。
编辑 你需要在函数上输入 return,比如
void GetBalance(float &balance)
如果(选择==真)
GetBalance(浮动 &balance);
这个用法是错误的,应该更正为:
if (choice == true)
GetBalance(balance);
除了 cosnstructors,C++ 中的所有函数都应该有 return 类型。因此,在这种情况下,函数声明和定义必须更正如下,方法是添加 return type void
void GetBalance(float &balance);
最重要的是,您必须在程序中添加所需的头文件和命名空间才能进行编译。
#include<iostream>
using namespace std;
变量在 C++ 中是类型敏感的,因此您必须按如下方式更改函数定义中的变量:
void GetBalance(float &balance)
{
cout << "please enter the balance: " << endl;
cin >> balance;
}
在您进行上述更改后,该程序将通过编译。
那么对于你的问题答案如下:
So that when the user enters a balance, the input is assigned to the
balance variable.
Is this correct?
Ans : Yes
答案是您还没有完全正确。你想要的是
float balance;
if(choice == true)
GetBalance(balance)
这样balance还是在main的范围内,否则只会在函数的调用里面存活。现在您可以在 main 中的任何地方使用 float。
既然已经涵盖了这些,我们可以讨论正在发生的事情。您正在声明一个名为 balance 的浮点数。这在内存中保留了一个位置。当您将 balance 传递给函数 GetBalance(float &Balance)
时,您将引用内存中的那个位置,并直接从该函数修改它的值。
本质上,主要问题是您在哪里声明了变量,以及您在函数调用中包含了一个符号。
我正在努力确保我了解使用“&”号来引用变量的含义。我知道有人问过其他类似的问题,但我想看看我给出的代码示例是否使用正确。
示例代码:
// 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;
}
所以在main函数中声明了float变量。
函数GetBalance引用了main函数中声明的变量。这样当用户输入余额时,输入被分配给余额变量。
这是正确的吗?
如果不能,我想做的是什么?
我想将在 GetBalance 函数中输入的金额分配/传递给在 main() 中声明的变量 "balance"。
你在
中的用法是正确的GetBalance(float &balance)
方法,但是您需要在 main() 中调用这样的方法:
GetBalance(balance);
因为声明中已经定义了类型。
此外,您可能希望通过以下方式进行一些错误检查:
cin >> balance;
检查用户输入的是浮点值。
编辑 你需要在函数上输入 return,比如
void GetBalance(float &balance)
如果(选择==真) GetBalance(浮动 &balance);
这个用法是错误的,应该更正为:
if (choice == true)
GetBalance(balance);
除了 cosnstructors,C++ 中的所有函数都应该有 return 类型。因此,在这种情况下,函数声明和定义必须更正如下,方法是添加 return type void
void GetBalance(float &balance);
最重要的是,您必须在程序中添加所需的头文件和命名空间才能进行编译。
#include<iostream>
using namespace std;
变量在 C++ 中是类型敏感的,因此您必须按如下方式更改函数定义中的变量:
void GetBalance(float &balance)
{
cout << "please enter the balance: " << endl;
cin >> balance;
}
在您进行上述更改后,该程序将通过编译。 那么对于你的问题答案如下:
So that when the user enters a balance, the input is assigned to the balance variable.
Is this correct? Ans : Yes
答案是您还没有完全正确。你想要的是
float balance;
if(choice == true)
GetBalance(balance)
这样balance还是在main的范围内,否则只会在函数的调用里面存活。现在您可以在 main 中的任何地方使用 float。
既然已经涵盖了这些,我们可以讨论正在发生的事情。您正在声明一个名为 balance 的浮点数。这在内存中保留了一个位置。当您将 balance 传递给函数 GetBalance(float &Balance)
时,您将引用内存中的那个位置,并直接从该函数修改它的值。
本质上,主要问题是您在哪里声明了变量,以及您在函数调用中包含了一个符号。