C语言从入门到精通 实例版 第5章数组
发表在C语言图书答疑 2015-06-29
是否精华
版块置顶:
第5章 数组 5.4多维数组有个a1三维数组个和a2四维数组。由于数组元素的位置都可以通过偏移量计算,所以对于三维数组a[m][n][p]来说,元素a[i][j][k]所在的地址是从
a[0][0][0]算起到(i*n*p+j*p+k)个单位的地方。就三维数组
a1[3][4][5]是否是0*4*5+0*5+5。如果不是a1[3][4][5]如何计算偏移量呢?请高手解答。
分享到:
精彩评论 1
爱学习
学分:0 LV1
TA的每日心情
开心
2020-03-23 20:54:03
2015-06-30
沙发
首先要知道,无论是一维,二维还是多维,数组元素在内存中的存储位置也是顺序存储的,比如一个一维数组3个元素
a[0] a[1] a[2]
那么a[0]的地址是这个数组的首地址,a[1]相对a[0]偏移量是1个单位,a[2]相对a[0]偏移量是2个单位

比如一个二维数组3X3个元素(m=3,n=3,3行3列的数组)
a[0][0] a[0][1]  a[0][2]  a[1][0] a[1][1]  a[1][2]   a[2][0] a[2][1]  a[2][2]


a[i][j]所在的地址是从a[0][0]算起到(i*n+j)个单位的地方。那么a[1][2]就是从a[0][0]算起到 1*3+2=5 个单位的地方,这个懂了,三维也是一样的


比如一个二维数组3X3X3个元素  m=3,n=3,p=3

a[0][0][0]  a[0][0][1]  a[0][0][2]  a[0][1][0]  a[0][1][1] a[0][1][2]  a[0][2][0]  a[0][2][1] a[0][2][2]
a[1][0][0]  a[1][0][1]  a[1][0][2]  a[1][1][0]  a[1][1][1] a[1][1][2]  a[1][2][0]  a[1][2][1] a[1][2][2]
a[2][0][0]  a[2][0][1]  a[2][0][2]  a[2][1][0]  a[2][1][1] a[2][1][2]  a[2][2][0]  a[2][2][1] a[2][2][2]

元素a[i][j][k]所在的地址是从
a[0][0][0]算起到(i*n*p+j*p+k)个单位的地方。就三维数组
a1[1][1][2]来算就是  1*3*3+1*3+2=14  就是从a[0][0][0]后面开始数第14个就是  这回可是懂了?要知道数组下标应该代哪个值
这个公式中的n和p是三维数组中的维数,你怎么给代入0了呢?那当然算的不对啦
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照