设有数组int a[10][15], 数组元素a[5][3]用指针表示的形式是?谢谢,帮个忙
4个回答
展开全部
a+5是第5行(是从第0行算起)的首地址 就是行的地址。意思就是说给a加1偏移量是一行,这里是偏移量是15。
*(a+5)是a[5][0]的地址 是一个列地址。即*(a+5)=&a[5][0] 偏移量是每次是1.
*(a+5)+3是a[5][3]的地址
*(*(a+5)+3)就是a[5][3]的指针表示形式。
上面提到了便宜的概念,因为二维数组在内存中以一维数组存储方式存储,所以可以用总偏移量来计算每个数组元素地址。上面两位就是计算偏移的。
但貌似不是乘6,应该乘5.因为偏移完整的六行之后已经跑到第7行去了,从0行算就是跑到第6行去了。
所以另一种表示就是*(a+15*5+3)
*(a+5)是a[5][0]的地址 是一个列地址。即*(a+5)=&a[5][0] 偏移量是每次是1.
*(a+5)+3是a[5][3]的地址
*(*(a+5)+3)就是a[5][3]的指针表示形式。
上面提到了便宜的概念,因为二维数组在内存中以一维数组存储方式存储,所以可以用总偏移量来计算每个数组元素地址。上面两位就是计算偏移的。
但貌似不是乘6,应该乘5.因为偏移完整的六行之后已经跑到第7行去了,从0行算就是跑到第6行去了。
所以另一种表示就是*(a+15*5+3)
展开全部
*(a+6*15+3)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
*(*(a+10)+15)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询