C语言关于指针的一个小问题:int (*p)[4]书上说P是指向具有4个元素的一维数组的指针,而且这里p可以等于一

二维数组,我不太清楚这是怎么回事,请大家帮帮我,谢谢啊... 二维数组,我不太清楚这是怎么回事,请大家帮帮我,谢谢啊 展开
 我来答
chen1983oki
2011-02-01 · TA获得超过135个赞
知道答主
回答量:31
采纳率:0%
帮助的人:20.9万
展开全部
二维数组其实也是一个数组,你可以这样想
例如
int a[2][3]={{1,2,1},{3,4,3});
你拆开看,可以作为int a[2]表示有两个元素的数组,后面的[3]表示,前面部分每个元素也是一个数组。这个数组还有3个元素。
指向这个数组指针,int (*p)[3];也同样,同样拆开int (*p) 指向一个数组,后面的[3]表示,前面部分每个元素也是一个数组。这个数组还有3个元素。
使用时,这样理解。
p=a;//p指向数组
p[0]第一个元素,p[0][1],第一个元素是数组,数组中第一个元素。
所以p[0][1]=2
p[0]=*(p+0);
p[0][1]=*(*(p+0)+1)
p[1][2]=*(*(p+1)+2)

这个你明白了,指针你就清楚了。
有钱买不起房子
2011-01-31 · TA获得超过4325个赞
知道大有可为答主
回答量:1249
采纳率:100%
帮助的人:2074万
展开全部
int a[2][4]={11,22,33,44,55,66,77,88};
int (*p)[4];
p=a;
这里p又称作大指针,因为[]比*优先,如果*p[4]就是一个指针数组了,所以用括号改变优先性
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhangyan5290
2011-02-06 · 超过14用户采纳过TA的回答
知道答主
回答量:108
采纳率:0%
帮助的人:49万
展开全部
如果你家住的是楼房,那么问题就非常好回答。二维数组的名称就相当于你家的单元号;二维数组的第一个数,代表层数。但数组的地基是从0层开始的,所以如果说这个数组有几层,那就是这第一个数再加1。第二个数是这一层有几个住家,但地址是从0开始的所有用这个值减1。举例:
a[0][2]:即这个单元一共有一层,这层一共有两家住户。这两家住户的真实地址是a[0][0]和a[0][1]。
a[3][5]:即这个单元一共有三层,每层一共有五家住户。组成形式为:即各家的真实地址
a[0][0] a[0][1] a[0][2] a[0][3] a[0][4]
a[1][0] a[1][1] a[1][2] a[1][3] a[1][4]
a[2][0] a[2][1] a[2][2] a[2][3] a[2][4]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式