通过地址引用二维数组元素问题
答案:2 悬赏:70 手机版
解决时间 2021-04-17 18:12
- 提问者网友:献世佛
- 2021-04-17 05:39
通过地址引用二维数组元素问题
最佳答案
- 五星知识达人网友:天凉才是好个秋
- 2021-04-17 05:49
估计是你写的不全
二维数组你可以这么理解
他是线性存储的,这个是一定的,只要地址对应好,就没有问题
如a[M][N]这个数组,占用了M*N个存储单元,存储的顺序是吧第一行N个存储完后,接着存储第二行N个数据
这么说你应该有个印象了,a[0][0]的地址知道,找a[i][j]的地址,你应该内算出来了
就是a[0][0]的地址加上i*N+j,也就是你说的那个 *(&a[0][0]+ N*i +j )
不过上面的说法有点漏洞,就是没有考虑什么类型,因为char型的占一个字节,int型占两个字节(这个我不是很确定,因为不同的编译环境,可能不同),这样要把这个因素算上
二维数组你可以这么理解
他是线性存储的,这个是一定的,只要地址对应好,就没有问题
如a[M][N]这个数组,占用了M*N个存储单元,存储的顺序是吧第一行N个存储完后,接着存储第二行N个数据
这么说你应该有个印象了,a[0][0]的地址知道,找a[i][j]的地址,你应该内算出来了
就是a[0][0]的地址加上i*N+j,也就是你说的那个 *(&a[0][0]+ N*i +j )
不过上面的说法有点漏洞,就是没有考虑什么类型,因为char型的占一个字节,int型占两个字节(这个我不是很确定,因为不同的编译环境,可能不同),这样要把这个因素算上
全部回答
- 1楼网友:山有枢
- 2021-04-17 06:02
觉得有问题,除非是char类型的,不然这种说法太牵强。他大概是想用第一个式子取a[i][j]的地址,第二个式子洁地址,就是取出a[i][j]的值。按照他的想法,后面至少应该加一才是,二维数组在存储的时候其实也是一维的,他就是想说明数组元素的存储单元是在第一个元素的基础上偏移了列数×行+列个单位的地址。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯