问题
单项选择题
若二维数组arr[1..8,1..6]的首地址为base,数组元素按列存储,且每个元素占用4个存储单元,则元素arr[5,5]在该数组空间的地址为()。
A.base+(4*8+4)*4
B.base+(5*8+5)*4
C.base+(4*6+4)*4
D.base+(5*6+5)*4
答案
参考答案:A
解析:
本题考查数组元素的存储。
二维数组arr[1..8,1..6]元素布局如下所示:
arr[1,1] | arr[1,2] | arr[1,3] | arr[1,4] | arr[1,5] | arr[1,6] |
arr[2,1] | arr[2,2] | arr[2,3] | arr[2,4] | arr[2,5] | arr[2,6] |
arr[3,1] | arr[3,2] | anr[3,3] | arr[3,4] | arr[3,5] | arr[3,6] |
arr[4,1] | arr[4,2] | arr[4,3] | arr[4,4] | arr[4,5] | arr[4,6] |
arr[5,1] | arr[5,2] | arr[5,3] | arr[5,4] | art[5,5] | arr[5,6] |
arr[6,1] | arr[6,2] | arr[6,3] | arr[6,4] | arr[6,5] | arr[6,6] |
arr[7,1] | arr[7,2] | arr[7,3] | arr[7,4] | arr[7,5] | arr[7,6] |
arr[8,1] | arr[8,2] | arr[8,3] | arr[8,4] | arr[8,5] | arr[8,6] |
按列存储时,元素arr[5,5]之前有4列(每列8个元素),在第5列中,arr[5,5]之前有4个元素,因此,存储在arr[5,5]前面的元素总数为4*8+4。
综上,元素arr[5,5]在该数组空间的地址为base+(4*8+4)*4。