Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我在C+上遇到了麻烦+;数组初始化 我是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; } }_C++_Arrays - Fatal编程技术网

我在C+上遇到了麻烦+;数组初始化 我是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; } }

我在C+上遇到了麻烦+;数组初始化 我是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; } },c++,arrays,C++,Arrays,问题是我认为没有初始化的数组的默认值(在本例中它的大小是8)应该是(0,0,0,0,0,0,0)。但那里似乎有一些奇怪的数字。有人能告诉我发生了什么以及为什么吗?初始值不能保证为0。元素未初始化,即它们包含垃圾值 如果要将数组元素初始化为0,请使用以下命令: int myarray[8] = {}; 如果要获取具有初始值的数组,可以执行以下操作: int *arr = new int[8](); 这是一个简单的数组声明,即你告诉编译器“嘿!我要使用一个大小为8的整数数组”。现在编译器知道它存

问题是我认为没有初始化的数组的默认值(在本例中它的大小是8)应该是
(0,0,0,0,0,0,0)
。但那里似乎有一些奇怪的数字。有人能告诉我发生了什么以及为什么吗?

初始值不能保证为0。

元素未初始化,即它们包含垃圾值

如果要将数组元素初始化为
0
,请使用以下命令:

int myarray[8] = {};

如果要获取具有初始值的数组,可以执行以下操作:

int *arr = new int[8]();
这是一个简单的数组声明,即你告诉编译器“嘿!我要使用一个大小为8的整数数组”。现在编译器知道它存在,但它不包含任何值。它有垃圾值

如果要(自动)初始化数组,则需要添加一个空白的初始化序列

int myarray[8]={}; //this will do

快乐编码

这就是为什么它们没有归零的原因:局部变量不是默认的初始值我认为没有初始化的数组的默认值(在这种情况下,它的大小是8)应该是(0,0,0,0,0,0,0,0,0)。是什么让你这么想的?(我的意思是,让我们不要假设让我们谨慎行事,坚持文档所说的)我要补充的是,在一些MSVC编译器上设置调试标志将包括它们的调试运行时库,它们会初始化值,但发布运行时库不会初始化它们。如果你不小心的话,这可能会让你感到沮丧。我经常希望调试库初始化为随机数,而不是零来避免that@nicknguyen128,如果您接受他的回答,请单击数字旁边的复选标记。这给了他一个小小的名声提升,这标志着任何人都可以找到你的问题并从中学习。
int myarray[8];
int myarray[8]={}; //this will do