#include <iostream>
using namespace std;
int main()
{
int a[6];
for(int i=0;i<6;i++)
{
cout <<a[i]<<" ";
}
cout << endl;
return 0;
}
我有一个简单的c ++代码,如上所述。数组在堆栈上创建,未初始化。
我得到以下输出: 0 0 0 0 1569540800 32767 。
我真的不明白最后两个数字的来源。 更具体地说,我不知道[4]和[5]中的值是什么。我尝试多次运行该程序。 a [4]每次都在变化,而[5]总是32767。
我还尝试创建一个长度为4和8的未初始化数组。在这些情况下,输出全为零。
我知道必须初始化一个数组。当我玩c ++数组时,我遇到了这种情况。我只想更深入地了解记忆中发生的事情。
我的环境是Mac上的clang ++。
答案 0 :(得分:0)
未初始化意味着它包含该内存位置的内容。也就是说,它可以包含任何内容。
这就是为什么你应该总是初始化变量。
答案 1 :(得分:0)
我相信如果未明确初始化数组元素它可以是任何内容,通常是该内存地址中已有的内容。
换句话说,如果你没有初始化它们,它们等于存储在那个存储位置中的任何内容。换句话说,垃圾。
答案 2 :(得分:0)
必须初始化数组a [6]。默认情况下,这将是未初始化的。因此,没有任何元素被设置为任何特定值,它们的内容在声明数组时未确定。
要清除冗余数据,只需初始化数组。