三级笔试题填空比较

来源:百度知道 编辑:UC知道 时间:2024/06/08 11:29:03
(4)设有二维数组A[0。9][0.。19],其每个元素占两个字节,数组按列优先顺序存储,第一个元素的存储地址为100,那么元素A[6,6]的存储地址为232.
答案的解释是:p=100+(6*10+6)*2=232

(9)二维数组A[0…8][0…9],其每个元素占2个字节,从首地址400开始,按行优先顺序存放,则元素A[8,5]的存储地址为
A) 570 B )506 C )410 D )482
答案的解释是:p=400+(8*10+5)*2=570
为什么这里8是乘以10呢?不是应该乘以9吗?

这两道题是不是矛盾呀?

那两道题没有矛盾,是优先顺序的问题.
有二维数组a[0-j][0-k],
第一题是数组按"列"优先顺序存储,那么
a[n][m]的存储地址=首地址+(m*(j+1)+n)*字节数;
第二题是数组按"行"优先顺序存储,那么
a[n][m]的存储地址=首地址+(n*(k+1)+m)*字节数;
上面j+1是行数,k+1是列数.
第二题就是n=8,k+1=10.

恩,是这样的

没矛盾