数组A[0..5,0..6]的每个元素占5个字节,将其按列优先次序存储在起始地址为1000的内存单元中,则元素A[5][5]的地址是( )。
A. 1175 B. 1180 C. 1205 D. 1210
1000+(5x6 + 5)x5 = 1175
数组A[0..5,0..6],即6行7列。题目让按列优先存放
1000+(6*5+5)*5=1000+175=1175
数组A[n] 下标范围为0~n-1,n个容量
而数组A[0...n] 下标范围为0~n,n+1个容量
由此该题应该为 (5*7(前5行所有元素个数)+6)*5(每个元素所占存储单元)+1000 = 1205
A有6行7列,按照列优先:1000+7×5×5+6×5=175+30=1205
iheanu_ 回复 iheanu_: 家人们算错了... (行长度 * (所在列 - 1) + 所在行 - 1) * 单元长度 + 起始地址 (6 * (6 - 1) + 6 - 1) * 5 + 1000 = 1175
基地址+(行标之差×每行元素个数+列标之差)×元素所占存储单元
答案错了吧,应该是c
5*6的数组形式
按列优先: a[5][5]前面有5列,供5*6=30个元素;在第6列前还有5个元素,供35个元素
则a[5][5]的初始地址为 1000+35*5=1175
Trevor 回复 我超白好嘛: 这是6*7吧,第六列还有六个元素,
A
用户登录可进行刷题及查看答案
登录后提交答案