[英]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.