C++:Xcode 中未初始化的变量输出为 0

标签 c++ xcode initialization

我正在参加一个非常初级的初学者编程类(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/

相关文章:

c++ - 在枚举上重载 << 运算符会导致运行时错误

c++ - 是否可以从移动构造函数调用默认构造函数?

ios - 无法通过框架访问公共(public) swift 类

按行名删除一堆行 - 如何在 R 中初始化空字符串?

c++ - C++ 获取一天开始时间戳

c++ - 为 std::vector<std::vector<TYPE>> 中的内部 vector 保留内存

objective-c - 使用 NSNumberFormatter 在 NSTextField 中自定义错误消息

swift - IOS10、Xcode 8.2 谷歌 Admob 问题

variables - 时间扭曲变量初始化?

java - 如何在 Java 中初始化泛型变量?