早教吧 育儿知识 作业答案 考试题库 百科 知识分享

数据结构数组A[0..5,0..6]的每个元素占5个单元,将其按列优先次序存储在起始地址为1000的连续的内存单元中,则元素A[5,5]的地址为.\x0dA.1175B.1180C.1205D.1150E.1145\x0d写出解题过程\x0d\x0d\x0d

题目详情
数据结构
数组A[0..5,0..6]的每个元素占5个单元,将其按列优先次序存储在起始地址为1000的连续的内存单元中,则元素A[5,5]的地址为_______.\x0d A.1175 B.1180 C.1205 D.1150 E.1145 \x0d写出解题过程\x0d\x0d\x0d我的解法是 1000 + (6*5+5)*5=1175\x0d\x0d但是答案是b
▼优质解答
答案和解析
注意是按列存储的,所以地址应该是:
(行长度 * (所在列 - 1) + 所在行 - 1) * 单元长度 + 起始地址
(6 * (6 - 1) + 6 - 1) * 5 + 1000 = 1175
是要替换.
所在行就是所求元素在行或列中的位置.
a[5][5]是第6行第6个元素(下标从0开始的)所在行所在列都是6.
公式不用记的,第6行第6个元素按列存储前面有5列完整的列,加上第6列上前面有5个元素,所以前面一共有6 * (6 - 1) + 6 - 1个元素.