数组A[10][15]的每个元素都是占4个字节的数据,将其按列优先次序存储

本文详细解析了如何根据二维数组的列优先存储原则,计算特定元素的存储地址。通过实例展示了计算公式及其应用,适用于理解数据存储结构及寻址方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个还是要记一下的

数组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咯!简单吧!哈哈!

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值