关于二维数组的问题 a[1]与&a[1]等价,但a[1]为什么与&a[1][0]也等价。 我的理解

关于二维数组的问题a[1]与&a[1]等价,但a[1]为什么与&a[1][0]也等价。我的理解是:a[1]是指一行的地址,但&a[1][0是指一个元素的地址,两者应该不等... 关于二维数组的问题
a[1]与&a[1]等价,但a[1]为什么与&a[1][0]也等价。
我的理解是:a[1]是指一行的地址,但&a[1][0是指一个元素的地址,两者应该不等价啊?
求解……
展开
 我来答
lsslddd
2014-02-25 · TA获得超过936个赞
知道小有建树答主
回答量:374
采纳率:0%
帮助的人:424万
展开全部
a[1]与&a[1]不等价哦,二者仅仅是数值上相等,但含义不同

比如有int a[3][4]; &a[1]是行指针,类型是int(*)[4],和a的类型相同,而a[1]是个int*

a[1]与&a[1][0]是等价的,二者类型和数值都相同
追问
那为什么教材上说a[1]与&a[1]是等同的?
追答

那教材上说错了

这很容易验证啊:

#include <stdio.h>
int main()
{
char a[3][7];              
printf("   a[1]=0x%x\n  &a[1]=0x%x\n",a[1],&a[1]); //数值上是一样的
printf(" a[1]+1=0x%x\n&a[1]+1=0x%x\n",a[1]+1,&a[1]+1);  //含义不同了,a[1]+1偏移1个字节,&a[1]+1偏移7个字节
}
百度网友3d2df7c
2014-02-25
知道答主
回答量:14
采纳率:0%
帮助的人:8.8万
展开全部
你说a[1]是一行的地址,这句话同时可以理解成a[1] 是这一行的首地址。而a[1][0]不就是这行的首地址吗?所以两者等价。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式