数组初始化混乱

时间:2015-01-02 14:15:47

标签: c++

我已经完成了[问题1](Initialization of a normal array with one default value)和[问题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给出了值:AS EXPECTED 请简单解释为什么我在选项1和选项2中都没有看到相同的行为。

1 个答案:

答案 0 :(得分:3)

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

int arr[5];

然后你指定一个超出范围的值

arr[5] = {-1};

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