数组是以顺序结构的形式保存在堆内存中的,数组首元素地址就是该数组的地址,数组的下标就是指针,打印的时候,指针变量指向对应的指针,打印出该元素,而数组就可以理解成很多同类盒子(变量)顺序连接组成的大盒子,大盒子内装了小盒子,小盒子内装数据,所以我认为在删除数组元素的时候删除的是盒子内的数据,盒子并没有被删除,装数据的容器还在,举个例子:如楼主所说int[4]=5, 这个5可以删除,但是数组中4这个地址装数据的盒子并没有被删除, 在删除数组元素时并没有改变定义数组在内存中的状态。因为数组是顺序存储的,就像学生站路队一样,,中间忽然少了个人,后面的人立马跟上补上走掉那个人的位置,(楼主所说的覆盖),这样原定长度的数组最后元素的地址就会造成空缺,系统默认空字符补上(\0). 下面是我画的数组的存储形式图(个人理解仅供参考,呵呵)
|
|