数组的最后一位的下一位为什么是0?

以下是我做的两个实验,加证实了数组的最后一位的后一位是0,只应该是系统自动添加的标志位

1、比如

int a[5]

则a[5]=0,这个是什么原因我还没有搞懂

#include<iostream>
using namespace std;


int main()
{
int a[5];
int *p=a;
for(int i=0;i<5;i++)
{
a[i]=i;
cout<<"a[i]="<<a[i]<<endl;
cout<<"*p="<<*p<<endl;
*p=*p+1;
}
cout<<"a[5]"<<a[5]<<endl;
cout<<"a[6]"<<a[6]<<endl;
cout<<"*(p+5)"<<*(p+5)<<endl;
cout<<"(p+6)"<<*(p+6)<<endl;



}


/*a[i]=0
a[i]=1
a[i]=2
a[i]=3
a[i]=4
a[5]0
a[6]68
实验结果数组的最大位后一位是0,我将用数组下标和指针两个实验一起说明这个问题*/ 


/*
a[i]=0
*p=0
a[i]=1
*p=1
a[i]=2
*p=2
a[i]=3
*p=3
a[i]=4
*p=4
a[5]0
a[6]4254729
*(p+5)0
(p+6)4254729

这是第二次实验结果,更加证实了数组的最后一位的后一位是0,只应该是系统自动添加的标志位*/ 

以上这个是用的DEV C++编译器



a[i]=0

*p=0
a[i]=1
*p=1
a[i]=2
*p=2
a[i]=3
*p=3
a[i]=4
*p=4
a[5]-858993460
a[6]839608846
*(p+5)-858993460

(p+6)839608846


以上使用的visual编译器,

综合结果,a[5],是个随机的值



猜你喜欢

转载自blog.csdn.net/djt4541/article/details/80997734