C语言指针指向数组问题

inta[3][3],*p,i;p=&a[0][0];for(i=1;i<9;i++)p[i]=i+1;//这里循环P[i]也就是p[1]p[i]=i+1也应该等价于p[... int a[3][3],*p,i;
p=&a[0][0];
for(i=1;i<9;i++)p[i]=i+1;//这里 循环P[i]也就是p[1] p[i]=i+1也应该等价于p[1]=i+1而 指向数组,p[1]应该指向的是a[1][0]才是,可是这样理解明显对于这道题是错误的,请问到底哪里错了
printf("%d\n",a[1][2]);
展开
 我来答
xbyljs
2012-03-13 · 超过28用户采纳过TA的回答
知道答主
回答量:108
采纳率:0%
帮助的人:94.7万
展开全部
因为定义的是int *p;所以p+1只是移动了一个int的字节,
如果是想实现p+1是列移动,则应该定义:
int (*p)[3];
p = a;
这样(*(p+1))[0]就是a[1][0]
哒哒啊如同一条
2012-03-13 · TA获得超过232个赞
知道小有建树答主
回答量:348
采纳率:0%
帮助的人:135万
展开全部
这都不懂啊,
p=&a[0][0];
p为指向列的,
p=a,p是指向行的,应该这样定义
int ( *p)[3];
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
孔明灯2012
2012-03-13 · TA获得超过171个赞
知道小有建树答主
回答量:146
采纳率:0%
帮助的人:58.5万
展开全部
循环P[i]实际上是为a[0][0],a[1][0],a[2][0]。
追问
这个怎么理解?
追答
乱了乱了,看不明白你要问的东西了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
奶瓶被注册
2012-03-13
知道答主
回答量:3
采纳率:0%
帮助的人:3.1万
展开全部
“p=&a[0][0];”貌似应该改成“p=&a;”;
而且p[1]应该是指向的a[0][1];
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
254864054
2012-03-13
知道答主
回答量:6
采纳率:0%
帮助的人:9581
展开全部
地址排序a[0][0]a[0][1]而不是 a[0][0]a[1][0]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yingguang58
2012-03-13 · 超过10用户采纳过TA的回答
知道答主
回答量:44
采纳率:0%
帮助的人:10.5万
展开全部
上楼正解
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式