数组初始化混乱
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]
。
我已经完成了[问题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]
。