|
|
|
|
|
|
知识路径: > 计算机科学基础 > 常用数据结构 > 数组 > 数组和矩阵 >
|
|
被考次数:15次
|
|
被考频率:
高频率
|
|
总体答错率:
51%
|
|
知识难度系数:
|
|
考试要求:
掌握
|
|
相关知识点:4个
|
|
|
|
数组是一组具有相同类型的变量,其中各个元素共用一个数组名,但是用不同的下标来访问(引用)。如int a[6];说明了一个一维整型数组a,其中各个整型元素组成了一个向量:a[0], a[1], a[2], a[3], a[4], a[5]。
|
|
|
数组还可以是多维数组,但二维以上的多维数组不是线性结构。
|
|
|
n维数组是一维数组(向量)的推广。二维数组(也叫矩阵)可看作其元素是一维数组的一维数组(线性表、向量),n维数组可看作其元素是n-1维数组的一维数组(线性表、向量)。n维数组的每个元素处于n个向量中,有n个前驱,也有n个后继。
|
|
|
对二维数组来说,给定维数和下标,如何得到数组元素存储位置?设每个数组占用L个内存单元,则二维数组Amn按行优先顺序(下标从0开始),aij的地址为:
|
|
|
LOC(i, j)=LOC(0, 0)+(i*n+j)*L
|
|
|
二维数组Amn按列优先顺序(下标从0开始),aij的地址为:
|
|
|
LOC(i,j)=LOC(0, 0)+(j*m+i)*L
|
|
|
对n维数组而言,一旦规定了数组的维数和各维的上下界限,便可为它分配存储空间;反之,只要给出一组下标便可求得相应数组元素的存储位置。以行序为例,设每个数据元素占L个存储单元,则n维数组任意元素的存储位置为:
|
|
|
|
|
|
在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为起始地址。
|
|
|
|
|
|
|
|
|
|
|
|