我已经完成了[问题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中都没有看到相同的行为。
答案 0 :(得分:3)
在选项1中,您有一个未初始化的数组
int arr[5];
然后你指定一个超出范围的值
arr[5] = {-1};
因为唯一有效的指标是[0]
到[4]
。