整数数组的 C++ 大括号初始化

C++ brace initialization for integer array

为什么大括号括起来的初始化不适用于这个整数数组?

#include <iostream>
int main()
{
    int arr[2] = {0};
    for (int i = 0; i <= 2; i++)
        std::cout << arr[i] << " ";
}

输出为0 0 -731153664。为什么不是 0 0 0

因为数组中只有两个元素

for (int i = 0; i < 2; i++)

打印 arr[2] 是未定义的行为