我已声明这些变量,然后使用此代码在屏幕上打印。
int totalAge = 0;
float totalGPA = 0.0;
cout << "totalAge "<<totalAge << endl << "TotalGPA " << totalGPA;
输出就是这个。
totalAge 1975299651
TotalGPA -1.51482e+037
所以,现在我想知道为什么这两个变量分配了这些值,如果编译器为它们分配了值,那么为什么它没有赋值然后默认值为零?
答案 0 :(得分:5)
也许没有默认值,编译器只使用之前位置的垃圾。
如果你想要一个初始值,你应该明确地设置一个。
int totalAge = 0;
float totalGPA = 0.0f;
答案 1 :(得分:4)
您正在使用未初始化的局部变量,这会调用未定义的行为。这永远不会好,任何事情都可能发生。由于标准没有指定结果应该是什么,因此取决于具体的编译器实现。
答案 2 :(得分:0)
由于您正在尝试打印未初始化的变量,因此它显示了一些垃圾值。 首先将变量初始化为某个默认值,同时声明它。
例如。 int totalAge = 0;
然后尝试打印,您将获得具有初始化值的输出。