编译器使用错误的值初始化

Shu*_*aat -5 c++

我已声明这些变量,然后使用此代码在屏幕上打印.

int totalAge = 0;  
float totalGPA = 0.0;
cout << "totalAge "<<totalAge << endl << "TotalGPA " << totalGPA;
Run Code Online (Sandbox Code Playgroud)

输出就是这个.

totalAge 1975299651
TotalGPA -1.51482e+037
Run Code Online (Sandbox Code Playgroud)

那么,现在我想知道为什么这两个变量被分配了这些值,并且如果编译器已经为它们分配了值,那么为什么它没有分配然后默认值为零?

Sam*_*ica 5

也许没有默认值,编译器只使用之前位置的垃圾.

如果你想要一个初始值,你应该明确地设置一个.

int totalAge = 0;  
float totalGPA = 0.0f;
Run Code Online (Sandbox Code Playgroud)