c++栈:未初始化的局部变量
C++ Stack: uninitialized local variables
#include "iostream"
using namespace std;
int main()
{
int a,d,D,c,C,b,B,r,R;
char f,y,Y,n,N;
cout << "Press D - d, for dog,C -c for cat, B - b, for bird or R - r for Reptile:";
cin >> a;
if (a == d || a == D || a == c || a == C || a == b || a == B || a == r || a == R);
if (a == d || a == D || a == c || a == C)
if (a == d || a == D )
cout << "Is it neutered(Y/N)";
cin >> f;
if (f == Y || f == y)
cout << "50 Euros.";
else if (f == n || f == N)
cout << "80 Euros.";
if (a == c || a == C )
cout << "Is it neutered(Y/N)";
cin >> f;
if (f == Y || f == y)
cout << "40 Euros.";
else if (f == n || f == N)
cout << "60 Euros.";
if (a == r || a == R || a == B || a == b)
cout <<"10 Euros.";
if (a != d && a != D && a != c && a != C && a != b && a != B && a != r && a != R)
cout << "Error!";
system("pause");
return 0;}
Error I am getting:
...12b.cpp(21): warning C4390: ';' : empty controlled statement found; is this the intent?
...12b.cpp(20): error C4700: uninitialized local variable 'd' used
...12b.cpp(20): error C4700: uninitialized local variable 'D' used
...12b.cpp(20): error C4700: uninitialized local variable 'c' used
...12b.cpp(20): error C4700: uninitialized local variable 'C' used
...12b.cpp(20): error C4700: uninitialized local variable 'b' used
...12b.cpp(20): error C4700: uninitialized local variable 'B' used
...12b.cpp(20): error C4700: uninitialized local variable 'r' used
...12b.cpp(20): error C4700: uninitialized local variable 'R' used
...12b.cpp(25): error C4700: uninitialized local variable 'Y' used
...12b.cpp(25): error C4700: uninitialized local variable 'y' used
...12b.cpp(27): error C4700: uninitialized local variable 'n' used
...12b.cpp(27): error C4700: uninitialized local variable 'N' used
为什么我得到这个错误??我不明白??
好了,让我们简化一下代码。我认为你的意图是这样的:
char selection;
cout << (as before)
cin >> selection;
selection = tolower(selection);
switch(selection) {
case 'd':
// stuff for dogs here
break;
case 'c':
// stuff for cats
break;
// etc.
default:
// error case
}
对吧?
我认为这很清楚,而不是
if (a == d || ...
你实际上想要
if (a == 'd' || ...
。将变量a
与字符'd'
进行比较。你已经犯了很多很多次同样的错误,所以把它们都修正一下,看看还剩下什么错误。
你也错误地声明a
作为int
时,它应该是一个char
。f
是正确的,但a
却不正确。
相关文章:
- 为什么C++有不同的变量初始化方式?
- 静态 constexpr 成员变量初始化
- C++不同的变量初始化
- 全局和局部变量初始化与 constexpr 的差异背后的基本原理
- 是变量初始化失败吗?
- 视觉C++:在 DLL 加载期间,全局变量初始化顺序是否具有确定性?
- 类静态变量初始化顺序
- 使用 constinit 变量初始化 constexpr 变量
- 是否可以在不修改父类的情况下将成员变量初始化推迟到继承的类?
- 如何将局部变量初始化为C++的未知值
- 使用全局变量初始化不同编译单元中的其他全局变量
- 使用默认构造函数引用成员变量初始化错误
- 宏的 if 语句中的变量初始化
- 不稳定的C :每行适应性变化多变量初始化
- DLL 中的 C++ 静态局部变量初始化会导致_CrtIsValidHeapPointer异常
- C++-局部未初始化变量的值
- 在VS2015中c++局部静态变量初始化线程安全吗?
- 多线程环境中的静态局部变量初始化
- 局部静态变量初始化是线程安全的
- C++11 中线程安全局部静态变量初始化的成本