[英]Why there are Random numbers in non initialized array but not in non initialized members of half initialized array in C++?
为什么在示例 1 代码中它在数组的未初始化项中分配 0,但在示例 2 中在完全未初始化的数组中分配随机数? 为什么它也不将 0 分配给完全未初始化的数组?
示例 1:
int ar[5] ={0,1};
for (int i =0; i< 5; i++){
cout << ar[i] << " ";
}
// output: 0 1 0 0 0
示例 2:
int ar[5] ;
for (int i =0; i< 5; i++){
cout << ar[i] << " ";
}
// output: 1875998720 0 1875947552 0 1876031856
在第一个例子中! 您正在使用默认值初始化大小为 5 的数组。
int arr[5] = {0,1}
花括号中的值将分配给数组中的相应索引。 例如,数组的第一个索引为 0,第二个索引为 1,然后默认 0 值到数组中的其余索引。
在第二个示例中,您只是声明了数组而不是初始化。 因此,在数组的每个索引处,都有垃圾值,当您迭代数组时,您会在数组的每个索引处收到无例外(垃圾)值。
如果你声明一个变量但没有用任何值初始化,它会分配我们无法预测的随机垃圾值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.