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。现代软件加载程序在将进程的内存位移交给它们之前清除这些位。在这种情况下,值将为零
但是,如果您进行交叉编译,则不能假设外部加载程序会将位归零。在使用变量之前,请始终为变量赋值(即使您没有进行交叉编译)。现代软件加载程序在将进程的内存位交给它们之前会将其清除。在这种情况下,值将为零
但是,如果您是交叉编译,则不能假定外部加载程序将位归零。在使用变量之前,始终为变量赋值(即使您不是交叉编译)。“变量中可能存储有任何数字”太慷慨了。它是未定义的。我不同意。它是未定义的,存储哪个数字就意味着任何数字都可以存储在其中。当然,一旦访问未初始化的数据,程序的行为就是未定义的…“可能有任何数字存储在其中”太慷慨了。它是未定义的。我不同意。未定义存储的数字意味着任何数字都可以存储在其中。当然,一旦访问未初始化的数据,程序的行为就是未定义的。。。