c语言指针数组问题

通常可用一个指针数组来指向一个二维数组。指针数组中的每个元素被赋予二维数组每一行的首地址,因此也可理解为指向一个一维数组。inta[3][3]={1,2,3,4,5,6,... 通常可用一个指针数组来指向一个二维数组。 指针数组中的每个元素被赋予二维数组每一行的首地址, 因此也可理解为指向一个一维数组。
int a[3][3]={1,2,3,4,5,6,7,8,9};
int *pa[3]={a[0],a[1],a[2]};
int *p=a[0];
main(){
int i;
for(i=0;i<3;i++)
printf("%d,%d,%d\n",a[i][2-i],*a[i],*(*(a+i)+i));
for(i=0;i<3;i++)
printf("%d,%d,%d\n",*pa[i],p[i],*(p+i));
}
最后一行输出语句中 p[i],和*(p+i)是哪里冒出来的 真是不解(明明在说明时候指针数组名就是pa) 会冒出个p
冒出来了又表示什么含义 麻烦用一些理论性知识来告诉我 谢谢啦 想明白了 我再上机看结果
展开
 我来答
Hello过客
2013-03-05
知道答主
回答量:68
采纳率:0%
帮助的人:13.2万
展开全部
p来自于语句int *p=a[0];该语句表示将p指向二维数组的首行
由于p是指向整形的指针,则p[i]等价于a[0][i],*(p+i)也等价于a[0][i]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
燕山运动
2013-03-05
知道答主
回答量:11
采纳率:0%
帮助的人:3.1万
展开全部
二维数组a[3][3],a[0]是指向其中第一行的指针
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式