我对未初始化的数组感到困惑。每当我初始化这样的数组“ int array [10];”,并且不应用任何值,然后打印此未初始化的数组时。该数组的第一个元素将始终是垃圾值(例如printf(“% d“,array [0]);将是一些垃圾值)。但是默认情况下,其他值(例如从array [1]到array [10])将被初始化为零(0)。
谁能解释为什么?
基于堆栈的数组-array [1]为0只是一个随机巧合。除非您明确清零,否则这些值是不确定的。顺便说一句,当数组的大小为10时,array [10]为OOB。
https://docs.microsoft.com/en-us/cpp/cpp/arrays-cpp?view=vs-2019
如果不分配默认值,则每个元素最初将包含该位置上的任何随机值。