|
|
数组是一组具有相同类型的变量,其中各个元素共用一个数组名,但是用不同的下标来访问(引用)。例如int a[6],表示一个一维整型数组a,其中各个整型元素组成了一个向量:a[0],a[1],a[2],a[3],a[4],a[5]。
|
|
|
数组还可以是多维数组,但二维以上的多维数组不是线性结构。
|
|
|
n维数组是一维数组(向量)的推广。二维数组(也叫矩阵)可看作是其元素是一维数组的一维数组(线性表、向量),n维数组可看作是其元素是n-1维数组的一维数组(线性表、向量)。n维数组的每个元素处于n个向量中,有n个前驱,也有n个后继。
|
|
|
对二维数组来说,给定维数和下标,如何得到数组元素的存储位置?设每个数组占用1个内存单元,则二维数组Amn,按行优先顺序(下标从1开始)计算,aij的地址为:
|
|
|
LOC(aij)=LOC(a11)+((i-1)*n+(j-1))*1
|
|
|
二维数组Amn按列优先顺序(下标从1开始)计算,aij的地址为:
|
|
|
LOC(aij)=LOC(a11)+((j-1)*m+(i-1))*1
|
|
|
在C语言中,二维数组是按行优先存储的,数组float a[4][5]的存储顺序为a[0][0],a[0][1],…,a[0][4],…,a[3][0],…,a[3][4],a[2][3]的地址为S+(2*5+3)*4=42,其中S为起始地址。
|
|
|
|
|
|
|
|
|
|
|
|