以下是我做的兩個實驗,加證實了數組的最后一位的后一位是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],是個隨機的值