对于数组的维数理解,应该清楚的认识到,一维数组是“线性的”的,二维数组是“平面”的,而三维数组时“立体”的,其不仅反映了其在计算机中物理储存层面上的描述,同时也表现了其抽象模型的性质,而其抽象的性质与其运用往往会比较困难,但在许多问题上,这个性质会发挥巨大的作用,并将这种结构的适用的范围大大地扩展。
对于高维数组,拿三维数组为例,arr[][][],不应该只从计算机的物理储存方式来思考,即不应该由于二维数组的存在,就只把他想成“存放一个个二维数组指针的数组”,如前言所述,三维数组是立体的,所以从数学的角度来想(立方体),他的每一个元素应该是由三维坐标系中的三个参数(x,y,z)来描述的,反应在数组中,按照我们常有的思维方式,就应该是arr[z][x][y],即横向为平面xoy,而纵轴为z轴。
但既然我们已经有了其是立体的数学思想,那就不应该局限于arr[z][x][y],即我们不再将其单单理解为无数平面堆叠而成的立方体,根据问题的需要,我们可以将其理解为一个由无数的方柱并排放在一起而形成的立方体来理解,即arr[x][y][z],将一个平面平均分为数个格子(即我们理解的二维数组),而这些格子在纵向上有一定的容量或者说实体(即二维数组中的每个元素为一个一维数组),可以发现我们讨论的都是同一个东西,即数组中的三维数组,数学中的立方体,但我们的理解方式却完全不一样,而不同的理解方式往往可以发挥不同的效果,以此运用于不同的题目,三维数组如此,更高的维数的数组同样适用,从而在想法层面上大大扩展了高维数组这种结构的运用范围.