C程序中未初始化的数组

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

谁能解释为什么?

dazhuang358 回答:C程序中未初始化的数组

int array[10]; // defined,not initialized
int array[10]={1,2,3,4,5,6,7,8,9,0}; // defined and initialized
,

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

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

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

本文链接:https://www.f2er.com/2965555.html

大家都在问