int a[3][2] = { 1,2,3,4,5,6 }, (*p)[2]; p = a; printf("%d\n",a); printf("%d,%d",*a,*a[0]); } 50

为什么在结果中*a输出的是a[3][2]的首地址?a是数组的a[3][2]首地址,为什么*a的值不是1?... 为什么在结果中*a输出的是a[3][2]的首地址?a是数组的a[3][2]首地址,为什么*a的值不是1? 展开
 我来答
xiaosa380
2016-07-26 · TA获得超过756个赞
知道小有建树答主
回答量:1466
采纳率:33%
帮助的人:262万
展开全部
二维数组的首地址是二级指针,二级指针就是指针的指针,意思就是一个指针指向了另一个指针。
假如:int **b , *a; b = &a; 所以*b中存放的是指针a指向的地址值, b就是a的地址值。
所以这里的**a 和*a就是这个道理。这里*a就是第一行首地址的地址值
更多追问追答
追问
a已经就是数组的首地址了,*a是对a取内容,为什么*a不是1,而是和a的值一样
追答
a是二维数组的首地址,a[0]是第一行的一位数组的首地址,  a 和a[0]是不相等的。a中存放的是a[0], a[0]中存放的是{1, 2}
yypopo19
推荐于2017-06-30 · TA获得超过158个赞
知道小有建树答主
回答量:87
采纳率:100%
帮助的人:52.7万
展开全部
二维数组可以当成每个元素都是一个数组的一维数组
比如a[3][2] 可以当作一个一维数组a[3], 但是a[3]的每个元素都是一个一维数组..
那么就好理解了 *a是a[0],但是a[0]自身是一个一维数组,并不是一个数
所以*a[0], 或者**a 才是这个一维数组的首个元素的值
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
哥德巴赫的忧郁
2016-07-26 · 超过32用户采纳过TA的回答
知道答主
回答量:71
采纳率:0%
帮助的人:44.3万
展开全部
a是一个二维数组的首地址,*a是对a相当于进行了一次降维,所以*a是一维数组的首地址,也就是a[0],这么说吧你可以把a[3][2]看成这样子{ {a[0][0],a[0][1],a[0][2],}, {a[1][0],a[1][1],a[1][2],} {a[2][0],a[2][1],a[2][2]} },所以a指向的是这一整个数组,*a指向才是数组里的一个元素,所以再对*a进行*运算,也就是**a,才会是第一元素的值,如果不懂欢迎追问哦。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
王子易229
2016-07-26 · TA获得超过373个赞
知道小有建树答主
回答量:389
采纳率:0%
帮助的人:147万
展开全部
你这什么,题目看不懂
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
育知同创教育
2016-07-26 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
二维数组不应该是**a才能取到1吗?
追问
为什么呢?
追答
因为是二维数组
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式