数组的最后一位的下一位为什么是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],是个随机的值



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值