引用函数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;
}
因此,在主函数中声明了浮点变量。
函数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)
时,您将引用内存中的该位置,并直接从该函数修改其值。
从本质上讲,主要问题是在哪里声明了变量,以及在函数调用中包含了一个与号。
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 将数组的地址分配给变量并删除
- 为"adjacent"变量赋值时出现问题
- enum是C++中的宏变量还是整数变量
- 在全局变量中保存类的实例以重新创建类(创建"backup")
- 用C++中的一个变量定义一个常量
- 具有奇怪重复模板模式的派生类中的成员变量已损坏
- 你能重载对象变量名本身返回的内容吗
- 内置函数可查看CPP中的成员变量
- 是否可以初始化不可复制类型的成员变量(或基类)
- 尝试通过多个向量访问变量时,向量下标超出范围
- 试图让变量检查数组中的某些内容
- Cpp-Tuple使用带有变量的get
- 将包含C样式数组的对象初始化为成员变量(C++)
- 当vector是tje全局变量时,c++中vector的内存管理
- 通过多个头文件使用常量变量
- std::threads可以从Windows DLL中的全局变量创建/销毁吗?
- 执行函数时导致崩溃的变量
- 变量没有改变?通过向量的函数调用