int a[3][4]为什么要用int (*p)[4]而不是int (*p)[3]或int (*p)[5]

 我来答
温雨溪梦
2013-07-29 · 超过13用户采纳过TA的回答
知道答主
回答量:52
采纳率:0%
帮助的人:25.1万
展开全部
int a[3][4]是一个二维数组,可以认为是一个三行四列的平面数组。
二维数组的每行都是一个一位数组。
那么这个二维数组是一个有三个一维数组组成的数组,其中每个一维数组有四个元素。
int (*p)[4]的意思是定义一个指向一维数组的指针,这个指针指向二维数组的第一行数组的第一个元素,也就是指向了这个二维数组。
lyklau
2013-07-29 · TA获得超过192个赞
知道小有建树答主
回答量:113
采纳率:0%
帮助的人:105万
展开全部
首先要理解 a[3][4] 他表示定义了一个元素是4 的数组,而每个元素又是一个元素为3的数组,这就是二维数组。但是他在内存中的表现和 a[12]是一样的。(*p)[4]表示一个元素为4的数组,每个数组的元素是一个int*的指针。因为数组的对象 有的时候会被弱化成指针,所以这里元素为3的数组对象等价于*p。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
糖二灰
2013-07-29 · TA获得超过3940个赞
知道小有建树答主
回答量:1052
采纳率:75%
帮助的人:1061万
展开全部
int a[3][4] 二维数组
int (*p)[3] 这个是数组指针,数组名的指针,即数组首元素地址的指针。即是指向数组的指针。
int *p[4] 这个是指针数组,指针数组中的每一个元素均为指针,
一般来说这上边的三种写法比较等价,都很常用,如果不清楚的话,可以仔细的查看一下
二维数组,指针数组,数组指针这三个概念的区别。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
townsin
2013-07-29 · TA获得超过452个赞
知道小有建树答主
回答量:594
采纳率:50%
帮助的人:512万
展开全部
你这是在疑惑什么呢?这是2维数组的声明方式啊,第二维本身就是4,int (*p)[3]或int (*p)[5]当然不一样了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式