【问题标题】:C++: Uninitialized Variable Output Is 0 in XcodeC++:Xcode 中未初始化的变量输出为 0
【发布时间】:2016-03-31 03:31:00
【问题描述】:

我正在上一门非常初级的初学者编程课程,专注于 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,如果这有影响的话。

【问题讨论】:

  • 我无法想象这种行为是被定义的。您是否尝试过使用其他编译器(例如 g++)并查看是否得到相同的结果?
  • 为什么不应该是0?它可以是任何东西,0 是任何东西。

标签: c++ xcode initialization


【解决方案1】:

正式地说,这是未定义的行为。但有些环境会将内存归零。而其他将使其未初始化。您可以指望的一件事是,这在所有环境(例如,Visual Studio、gcc 等)中的行为并不相同

【讨论】:

    猜你喜欢
    • 2021-09-07
    • 2012-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-22
    • 1970-01-01
    • 2016-11-14
    • 1970-01-01
    相关资源
    最近更新 更多