第1关:数组的顺序表示和实现
任务描述
本关任务:实现以行序为主的方式存储三维数组 a[3][4][2]的 C 语言代码。
相关知识
为了完成本关任务,你需要掌握:
1.数组中数据存储的方式
2.多维数组查找指定元素
数组中数据存储的方式
由于数组可以是多维的,而顺序存储结构是一维的,因此数组中数据的存储要制定一个先后次序。通常,数组中数据的存储有两种先后存储方式:
以列序为主(先列后行):按照行号从小到大的顺序,依次存储每一列的元素
以行序为主(先行后序):按照列号从小到大的顺序,依次存储每一行的元素。
多维数组中,我们最常用的是二维数组。比如说,当二维数组 a[6][6] 按照列序为主的次序顺序存储时,数组在内存中的存储状态如图 1 所示:
,
同样,当二维数组 a[6][6] 按照行序为主的次序顺序存储时,数组在内存中的存储状态如图 2 所示:
,
多维数组查找指定元素
当需要在顺序存储的多维数组中查找某个指定元素时,需知道以下信息:
多维数组的存储方式;
多维数组在内存中存放的起始地址;
该指定元素在原多维数组的坐标(比如说,二维数组中是通过行标和列标来表明数据元素的具体位置的);
数组中数组的具体类型,即数组中单个数据元素所占内存的大小,通常用字母 L 表示;
根据存储方式的不同,查找目标元素的方式也不同。如果二维数组采用以行序为主的方式,则在二维数