Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.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++_Arrays_Initialization_Declaration - Fatal编程技术网

C++ 如果数组中的某些元素未赋值,那么该数组中存储的值是什么?

C++ 如果数组中的某些元素未赋值,那么该数组中存储的值是什么?,c++,arrays,initialization,declaration,C++,Arrays,Initialization,Declaration,如果将数组创建为: int number[10]; for(i=0;i<7,i+=1) { cin>>number[i]; } 整数[10]; 对于(i=0;i>number[i]; } 那么number[j]中存储的值是什么,其中j=8,9。 如果存储了某个值,那么为什么以及如何存储这些值呢?它们是未初始化的,这意味着其中可能存储了任何数字,您不应该依赖它们的值来做任何事情 在调试模式下运行时,某些编译器/系统可能会将零或某些模式写入其中,但您不应依赖于此。它们未

如果将数组创建为:

int number[10];
for(i=0;i<7,i+=1)
{
    cin>>number[i];
}
整数[10];
对于(i=0;i>number[i];
}
那么
number[j]
中存储的值是什么,其中
j=8,9

如果存储了某个值,那么为什么以及如何存储这些值呢?

它们是未初始化的,这意味着其中可能存储了任何数字,您不应该依赖它们的值来做任何事情


在调试模式下运行时,某些编译器/系统可能会将零或某些模式写入其中,但您不应依赖于此。

它们未初始化,这意味着其中可能存储有任何数字,您不应依赖它们的值


在调试模式下运行时,某些编译器/系统可能会将零或某些模式写入其中,但您不应依赖于此。

答案取决于阵列的存储持续时间

如果它具有静态存储持续时间,则在声明数组时,它的所有元素都为零

int number[10];

如果数组具有在函数中声明的自动存储持续时间,而没有指定符
static
extern
,则其所有元素都具有不确定的值。

答案取决于数组的存储持续时间

如果它具有静态存储持续时间,则在声明数组时,它的所有元素都为零

int number[10];

如果数组具有在函数中声明的自动存储持续时间,而没有指定符
static
extern
,则其所有元素都具有不确定的值。

数字[8]和数字[9]的值将被称为“垃圾”值,这意味着它可以是该位置当前存在的任何数字

但是,如果使用部分初始化来初始化阵列:

int number[10] = {1, 2, 3, 4, 5, 6, 7, 8};

然后最后2个元素将为0。

数字[8]和数字[9]的值将被称为“垃圾”值,这意味着它可以是该位置当前存在的任何数字

但是,如果使用部分初始化来初始化阵列:

int number[10] = {1, 2, 3, 4, 5, 6, 7, 8};

然后,最后2个元素将为0。

现代软件加载程序在将进程的内存位移交给它们之前清除这些位。在这种情况下,值将为零


但是,如果您进行交叉编译,则不能假设外部加载程序会将位归零。在使用变量之前,请始终为变量赋值(即使您没有进行交叉编译)。

现代软件加载程序在将进程的内存位交给它们之前会将其清除。在这种情况下,值将为零


但是,如果您是交叉编译,则不能假定外部加载程序将位归零。在使用变量之前,始终为变量赋值(即使您不是交叉编译)。

“变量中可能存储有任何数字”太慷慨了。它是未定义的。我不同意。它是未定义的,存储哪个数字就意味着任何数字都可以存储在其中。当然,一旦访问未初始化的数据,程序的行为就是未定义的…“可能有任何数字存储在其中”太慷慨了。它是未定义的。我不同意。未定义存储的数字意味着任何数字都可以存储在其中。当然,一旦访问未初始化的数据,程序的行为就是未定义的。。。