我是这样理解的,对内存理解不深,将就看吧
把堆内存看做是个大盒子,有一个一个的格子,如果是存放一维数组a[4]的话,那么选4个格子每个格子都放一个数就ok了.
那么如果是二维数组a[4][3]怎么办呢.它是要把4个长度为3的一维数组组成一个新的数组,数组的数组,所以是二维数组.但是在堆内存里面总不能一个格子里面放好多个数吧(不能一个格子里面放一个数组.).
那么表示的方法可不可以这样呢.分别创建4个(二维数组的长度,4)长度为3的一维数组和一个长度为4的一维数组.4个一维数组里中的元素都是放了一个数,然后把4个数组中每个数组的地址值(数组第一个元素的地址值)分别存放在长度为4的数组中.一维数组(长度为4的数组)中的元素其实是地址值,根据这个地址值可以找到相应的数组(这时的数组是通过其它数组找到的,所以是二维数组)
|