写了这样一个代码:
#include <iostream>
using namespace std;
int main()
{
int a[3]={0,1,2};
for(int i=0;i<3;i++)
{
cout<<a[i]<<endl;
}
cout<<a[3]<<endl;
cout<<a[4]<<endl;
return 0;
}
讲道理的话,a[3]就应该越界了,因为a[3]只创建了a[0],a[1],a[2]的空间
#include <iostream>
using namespace std;
int main()
{
int a[3]={0,1,2};
for(int i=0;i<3;i++)
{
cout<<a[i]<<endl;
}
cout<<a[3]<<endl;
cout<<a[4]<<endl;
return 0;
}
讲道理的话,a[3]就应该越界了,因为a[3]只创建了a[0],a[1],a[2]的空间
但是在codeblocks环境下有些奇怪的是,我并没有给a[3]赋值啊,居然还能输出a[3]=3
根据调试的情况来看,a[3]的值一直跟着i的值在变化,最后被偷偷赋给了a[3]