以下是我做的两个实验,加证实了数组的最后一位的后一位是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=0a[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],是个随机的值