我是C ++的新手。最近,我一直坚持使用简单的C ++代码代码。如果你能指出究竟是什么问题,我将非常感激。代码如下:
// used to test function of fill
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int val = 0;
int myarray[8];
//fill(myarray,myarray+2,1);
for(;val < 8;++val){
cout << myarray[val];
cout << endl;
}
}
它打印出来了:
-887974872
32767
4196400
0
0
0
4196000
0
问题是我认为没有初始化的数组的默认值(在这种情况下,它的大小是8)将是(0,0,0,0,0,0,0,0)
。但那里似乎有一些奇怪的数字。谁能告诉我发生了什么以及为什么?
答案 0 :(得分:11)
元素是未初始化的,即它们包含垃圾值。
如果要将数组元素初始化为0
,请使用:
int myarray[8] = {};
答案 1 :(得分:1)
初始值不保证为0.
答案 2 :(得分:1)
如果你想让一个数组有一个初始值,你可以这样做:
int *arr = new int[8]();
答案 3 :(得分:0)
int myarray[8];
这是一个数组的简单声明,即你告诉编译器“嘿!我将使用大小为8的整数数组”。现在编译器知道它存在,但它不包含任何值。它有垃圾值。
如果您打算初始化数组(自动),则需要添加一个空白的初始化序列。
int myarray[8]={}; //this will do
快乐的编码!