数组初始化混乱

Array Initialization confusion

我已经完成了[问题1](Initialization of a normal array with one default value) and [question 2] (How to initialize an array in C++ objects)但是我无法理解下面的行为。

int main()
{
    int arr[5];
    arr[5] = {-1}; // option 1
    int arr1[5] = { -1 }; //option 2
    for (int i = 0; i < 5; i++)
        cout << arr[i] << " ";
    for (int i = 0; i < 5; i++)
        cout << arr1[i] << " ";
}

选项 1 给出:垃圾值 选项 2 给出的值:如预期 请用简单的术语解释为什么我在选项 1 和选项 2 中看不到相同的行为。

在选项 1 中,您有一个未初始化的数组

int arr[5];

然后你赋值越界

arr[5] = {-1};

因为唯一有效的指标是 [0][4]