使用未初始化的局部变量"name"
Uninitialized Local Variable "name" Used
我一直得到这个错误在我的代码,未初始化的局部变量"name"使用。我像这样设置一个变量
然后在后面的代码中,int name = 0;
int name = name + 1;
我试图将name设置为0,然后将1添加到它,然后返回到开始,仍然使它等于name + 1。问题是它总是把它放回0。
为了使它更简单,这里是我正在谈论的部分。
int main()
{
int w = 0;
int choice;
cout << "1: Registern2: LoginnYour Choice:"; cin >> choice;
if (choice == 1)
{
string username, password;
cout << "Select A Username: "; cin >> username;
cout << "Select A Password: "; cin >> password;
ofstream file;
file.open("data\" + username + ".txt");
file << username << endl << password;
file.close();
main();
}
else if (choice == 2)
{
bool status = IsLoggedIn();
if (!status)
{
int w = w + 1;
cout << "Unsuccesfull Login!" << endl;
system("PAUSE");
if (w == 3)
{
return 0;
}
else if (w == 2)
{
main();
}
else if (w == 1)
{
main();
}
else if (w == 0)
{
main();
}
}
else
{
cout << "Succesfully Logged In!" << endl;
system("PAUSE");
return true;
}
}
}`
由于您没有收到重新声明变量name
的错误,因此似乎您在代码中没有看到第一个声明时使用了int name = name + 1;
。这里的问题是int name = name + 1;
第二个"名字"之前没有声明,你试着用它初始化你的第一个"名字"。从一开始就是一个糟糕的方法,但这里的问题是,当您声明int name = name + 1;
时,它不在int name = 0
的范围内。
因此,首先要确保在编译器"看到"int name = 0
声明的地方增加name
,并消除int name = name + 1;
当你试图在同一作用域中声明两个具有相同名称的变量时,c++会报错。
基本上int name;
创建了变量名。然后,您可以通过name
而不使用int
来寻址它。
你可能指的是int name = 0; [...] name = name + 1;
。
您声明了变量两次。我建议:
int name = 0;
然后在后面的代码中,
name++;
您也可以使用:++name;
或name += 1
您得到的错误看起来更像是一个警告。尽管如此,似乎你在同一作用域中声明了两次相同的变量,通常在这种情况下,错误会是这样的:重新声明int类型的变量name。
也许你在另一个作用域中再次声明了"name",并试图从另一个作用域中获得第一个,如果没有指针或引用,这是不可能的。这只是我的猜测,因为你没有发布完整的代码。
- 使用的未初始化局部变量'Quick'
- 修复未初始化的局部变量错误
- 局部变量保留函数中的值
- 如何使用 C++ 中的继承函数访问派生类中的局部变量
- 将引用分配给局部变量,如果局部变量超出范围,它会超出范围吗?
- Gnuplot_i.hpp C++接口绘制局部变量而不是文件
- 如何在函数外部访问函数中局部变量的值?
- 赋予全局变量而不是局部变量优先级的函数 - (异常行为)
- C++中静态方法的局部变量范围
- 未初始化的局部变量错误甚至认为我初始化了它(C++)
- 离开范围后如何保护局部变量的值?
- 局部变量名称冲突
- C++ lambda:如何'freeze'局部变量的值?
- 我应该使我的局部变量常量还是可移动的
- 获取具有静态局部变量的绑定/推断捕获 lambda 的函数指针
- 全局和局部变量初始化与 constexpr 的差异背后的基本原理
- 返回对局部变量 - C++ 的引用
- 是否可以影响 C++ 中回调函数的局部变量?
- 警告 C4101 未引用的局部变量
- 使用未初始化的局部变量"name"