C语言指针问题

若有以下定义和语句,则对a数组元素的正确引用为()。inta[2][3],(*p)[3]p=a;A)(p+1)[0]B)*(*(p+2)+1)C)*(p[1]+1)D)p... 若有以下定义和语句,则对a数组元素的正确引用为( )。

int a[2][3], (*p)[3]

p=a;

A) (p+1)[0] B) *(*(p+2)+1) C) *(p[1]+1) D) p[1]+2

答案为c
请把每个选项 代表 什么详解一下,谢谢
展开
 我来答
金色潜鸟
2018-06-10 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5715万
展开全部
int (*p)[3]; p 是一个 “行指针”,每行有3个元素。
p=a; 让 行指针 p 指向 a[0]这行。p 指向的地址等于 &a[0][0]。
*(p[1]+1) 等于 p[1][1] , 等于 a[1][1] 元素的值。
printf("%d %d %d\n",*(p[1]+1),p[1][1], a[1][1]); 输出 元素的值。
A: (p+1)[0] 这个是地址,等于 &a[1][0]。
B: *(*(p+2)+1) 如果 声明的是 int a[3][3],那么是对的,它等于 a[2][1] 元素的值,
可惜,声明的是 int a[2][3]。
D: p[1]+2 把地址看作数值,在运算,与 a的元素 没什么关系。
瘦小猴闯天涯
2018-06-10 · TA获得超过1170个赞
知道小有建树答主
回答量:3042
采纳率:43%
帮助的人:418万
展开全部
等我打完游戏我跟你讲
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式