永发信息网

C语言中如何用指针运算符来表示一个二维数组的元素及地址?

答案:3  悬赏:0  手机版
解决时间 2021-02-20 03:23
C语言中如何用指针运算符来表示一个二维数组的元素及地址?
最佳答案
二维指针,就是说第一维是指针,第二维还是指针;
拿*(*(a+i)+j)来说:a是数组的首地址吧,然后+i,就是说a地址向后偏移i位。就是a+i的地址了,注意,这里a+i只是地址,用*符号取出该地址的数据,就是*(a+i),这里*(a+i)就是第一维指针,它指的是地址,不是数据。
而且后面的*(a+i)+j就是说以*(a+i)为首地址,偏移j位,然后使用*取内容,这里就是第二维了,取到的数据就是实际数据了追问*(a+i)不是取出指针所指数据么?为什么说又是指地址?追答因为这是二维指针啊

*(a+i)是指针的数据,例如0x1234,但是0x1234只是代表数据,你需要再*一下,相当于去0x1234的地址去拿 数据,这里的数据才是你要的
全部回答



首先你得知道a就是数组第一个元素的地址,而二维数组a[i][j]可以理解为a[i]数组每个元素储存的是一个j个元素大小的另一个数组,这样理解的话,先说*(*(a+i)+j),a+i就不说了相当于被重载操作符一样,指针+1的含义就是加一个单位的数据大小,然后*(a+i)则相当于a[i]的值对吧,而a[i]的值就是下一个数组的指针现在源代码相当于*(a[i]+j),然后自己分析吧,很简单的,不过说实话没必要真么纠结,真写代码没多少人闲的蛋疼真么写的,给自己制造麻烦不说,后期维护也会很痛苦的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
晶振上面的E和A是什么意思?
瑶美漾口红孕妇可以用吗
《水浒传》的108好汉到最后 都谁 还活着那?
我的书我想知道这个在什么地方
红管2这几个版本有什么区别
表格中填写横着写
英语翻译(别译成口语,而是标题语的写法.)
买亲润护肤品是在官网上买好还是在旗舰店里的
病人已办理出院结算,但没来拿钱,财务上怎么
供销商场在哪里啊,我有事要去这个地方
汝阳县洛阳新凤山大酒店这个地址在什么地方,
上拉干村地址在什么地方,想过去办事
今日头条怎么卸载
梦幻西游里面的特技四海升平可以叠加吗??
新华路奎文法院站自行车租赁点在什么地方啊,
推荐资讯
清关对于一个贸易公司来说有什么好处?
以二十年后的忻州为题写一篇作文
模温机的工作原理是什么?
1:北京成功举办APEC会议说明了什么?2:APEC
廖郭的意思
宜章县地税局第五分局怎么去啊,有知道地址的
【落红不是无情物的下一句】落红不是无情物的
玻璃瓷砖地址有知道的么?有点事想过去
长沙哪里的衣服适合中学生?
刀耕火耘除草济用药多长时间下雨没事
尔健酒业这个地址在什么地方,我要处理点事
聊城市脑科医院在什么地方啊,我要过去处理事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?