【问题标题】:Array Initialization confusion数组初始化混乱
【发布时间】:2015-01-02 14:15:47
【问题描述】:

我已经完成了 [问题 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 给出值:如预期的那样 请简单解释一下为什么我在选项 1 和选项 2 中没有看到相同的行为。

【问题讨论】:

    标签: c++


    【解决方案1】:

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

    int arr[5];
    

    然后你分配一个超出范围的值

    arr[5] = {-1};
    

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

    【讨论】:

    • 我做错了,你一定明白为什么,因为我的想法完全错了。但是您的回答让我明白我正在为未像选项 2 中那样初始化的索引分配值。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多