C编程中的未初始化数组

问题描述 投票:0回答:1

我对未初始化的数组感到困惑。每当我初始化这样的数组“ int array [10];”,并且不应用任何值,然后打印此未初始化的数组时。该数组的第一个元素将始终是垃圾值(例如printf(“% d“,array [0]);将是一些垃圾值)。但是默认情况下,其他值(例如从array [1]到array [10])将被初始化为零(0)。

谁能解释为什么?

python c arrays computer-science garbage
1个回答
0
投票

基于堆栈的数组-array [1]为0只是一个随机巧合。除非您明确清零,否则这些值是不确定的。顺便说一句,当数组的大小为10时,array [10]为OOB。

https://docs.microsoft.com/en-us/cpp/cpp/arrays-cpp?view=vs-2019

如果不分配默认值,则每个元素最初将包含该位置上的任何随机值。

© www.soinside.com 2019 - 2024. All rights reserved.