我定义的是一个长度为5的数组,但是数组下标不是应该是0-4吗,为什么我用a[5]-a[2]仍可以得到两个数组单元之间的间隔
C语言里面,这样获取数组地址是没有问题的,但获取值就会有问题,因为a[5]的元素不存在,值不确定。
只是取地址的话,也是能得到正确结果的,如果a[5]这个空间已经被其它系统分配,你这么操作就是越界了
a[5]属于越界的内存,虽然是越界了,但编译器不会检查错误,如果这块内存指向非法,那么使用时会出错。