这个还是要记一下的
数组A[10][15]的每个元素都是占4个字节的数据,将其按列优先次序存储,若A[0][0]存储地址在起始地址为1000的内存单元中,则元素A[6][9]的地址是?答案1384
loc=1000+4*[10*(9)+(6)]=1384
这个是有公式的:A[n][ ],求元素A[i][j]?
loc=loc₀+d*[n*(j)+(i)]
loc₀是起始地址,
d:每个元素所占字节数
n是数组列数
j,i是所求元素下标
在拿一个网上的栗子
设有二维数组A[1…12,1…10],其每个元素占4个字节,数据按列优先顺序存储,
第一个元素的存储地址为100,那么元素A[4,5]的存储地址为?答案304
这里数组从1开始,所以j=5-1,i=4-1:
loc=100+4*[12*(5-1)+(4-1)]=304
plus:
感觉上面没有说清楚,于是再加一点。
当你上面的计算出错时,有没有好好的看清题目呢。为什么这个数组位置储存于自己想的不一样啊!
仔细读题发现“按列优先”和平常的“按行优先”是不是有区别呢。答案我想大家看到这就想明白了吧!如果是按列优先当然是要用上面的n*j咯!简单吧!哈哈!