我正在学习指针和引用资料,但我无法理解这个概念。我需要在我的主函数中声明一个变量,然后通过用户输入的函数对其进行初始化,而不返回任何内容。我试过:
#include <iostream>
using namespace std;
void input(int &num){
cout << "Enter A Number" << endl;
cin >> static_cast<int>(num);
}
int main(){
int x;
input(x);
cout << "The Number You Entered Was " << x << "!" << endl;
return 0;
}
最佳答案
除了那个 static_cast<int>
之外,你做对了那里。它在那里做什么?是什么让你使用那个类型转换?
摆脱那个强制转换,它应该可以工作。这个
cin >> num;
就是你所需要的。
P.S. 请记住,在 C++ 术语中,术语初始化 具有非常具体的含义。形式上,初始化 始终是变量定义 的一部分。在定义之后对该变量所做的任何更改都不再是初始化。在你的情况下变量 x
在没有初始化器的情况下声明,这意味着它开始其生命未初始化(具有不确定的值)。稍后您将一些特定值放入 x
通过阅读 cin
,但这不再是初始化(在 C++ 中该术语的含义)。
声明您的 x
可能是个好主意有一些确定的初始值,比如
int x = 0;
虽然我个人不是“虚拟”初始化程序的忠实粉丝。
关于c++ - 通过函数初始化变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12153155/