我正在参加一个非常初级的初学者编程类(class),重点是 C++。我们目前正在学习成员变量与局部变量。为此,我编写了这个非常简单的程序,以查看当一个局部变量被声明但未初始化并被赋予与已已初始化的成员变量相同的名称时的输出。
class myclass
{
public:
void getvalues();
myclass();
private:
int count;
};
myclass::myclass()
{
count = 100;
}
void myclass::getvalues()
{
int count;
std::cout << count << std::endl;
}
int main()
{
myclass foo;
foo.getvalues();
return 0;
}
我的期望是我会得到一些非常大的随机数的垃圾输出。相反,输出是 0
。这有什么特别的原因吗?我正在使用 Xcode,如果这会有所作为的话。
最佳答案
官方这是未定义的行为。但是某些环境会将内存归零。而其他人将使其保持未初始化状态。您可以信赖的一件事是,这在所有环境(例如,visual studio、gcc 等)中的表现并不相同
关于C++:Xcode 中未初始化的变量输出为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36323633/