int[4][3]={1,2,3,4,5,6,7,8,9,10,11,12},(*prt)[3]=a,*p=a[0]; a[1][2]的表达式是*(*(a+1)+2) 为什么?
1个回答
展开全部
其实只需要:a[1][2]的表达式是*(*(a+1)+2) 为什么?
(地址加数字就是往后移几个后的地址)
a指的是这个二维数组名或起始地址
a+1指的是第一行的起始地址
*(a+1)加*后指的是第一行第0列的起始地址(因为还有一整行,不能具体到某个值,所以还是地址)
*(a+1)+2指的是第一行第二列的地址
*(*(a+1)+2) 指的是第一行第二列这个地址上的数,也就是a[1][2]的意思。
(地址加数字就是往后移几个后的地址)
a指的是这个二维数组名或起始地址
a+1指的是第一行的起始地址
*(a+1)加*后指的是第一行第0列的起始地址(因为还有一整行,不能具体到某个值,所以还是地址)
*(a+1)+2指的是第一行第二列的地址
*(*(a+1)+2) 指的是第一行第二列这个地址上的数,也就是a[1][2]的意思。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询