#include <iostream>
using namespace std;
int main()
{
int arr1[4];
int arr2[4];
for (int i = 0;i<=4;i++)
{
cin>>arr1[i];
arr2[i]=arr1[i];
}
for(int j = 0;j<=4;j++)
{
cout<<arr1[j]<<" ";
cout<<endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}
结果:
有人可以向我解释为什么arr[0] = 5
?我无法弄明白。
答案 0 :(得分:2)
您在i=4
时访问了界限。 arr1
和arr2
只有4个元素。即arr1[0], arr1[1], arr1[2], arr1[3]
和arr2[0], arr2[1], arr2[2], arr2[3]
。
您的编译器可能会在arr1
之后分配arr2
,并且意外arr2 + 4
与[{1}}具有相同的地址,因此访问arr1
会写入值到arr2[4]
。