C语言用指针引用数组元素

如下所示定义,对数组a中元素的正确引用是()Cinta[2][3],(*p)[3];p=a;A、(p+1)[0]B、*(*(p+2)+1)C、*(p[1]+1)D、p[1... 如下所示定义,对数组a中元素的正确引用是() C
int a[2][3], (*p)[3];
p = a;

A、(p+1)[0]
B、*(*(p+2)+1)
C、*(p[1]+1)
D、p[1]+2
这个(*p)[3]经过赋值之后是个什么东西,是几维数组了。为什么选择C啊
这个(*p)[3]没赋值前是个3维数组指针。赋值之后变成2维数组指针了对嘛?
展开
 我来答
琪乐PP
2013-01-26
知道答主
回答量:15
采纳率:0%
帮助的人:9.6万
展开全部
(*p)[3]是定义一个指向一维数组的指针,数组元素为三。也就是说p指向的其实是a[0],a[1],a[2]这样的形式。
p=a;其实就是把第0行的首地址赋值给p.
所以答案C中p[1]即是把第1行的首地址给p,在此基础上向后移一位,取出地址中的元素数值。 *(p[1]+1)相当于a[1][1].所以是对的。
B的形式是对的,但是它相当于a[2][1],超出界限所以为错。剩下的两个格式就不对。
wang798404663
2013-01-26 · 超过10用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:30.7万
展开全部
赋值后,指针数组的第一个指针指向字符串数组(a)里的第一个字符串的第一个字符,第二个数组指向第二个字符串的第一个字符,第三个指针没有指向任何实体是空的。
A.是一个指针,指向a中第二个字符串
B.由于a的第一维大小为二,故B选项是空的,没有应用a中的元素。
D.也是一个空指针,没有应用任何元素
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
874843807gm
2013-01-26 · 超过12用户采纳过TA的回答
知道答主
回答量:52
采纳率:0%
帮助的人:23.5万
展开全部
p是指向有3个int*型元素的指针,也可以说p代表一维数组,p=a就是把a指针放到p数组的第一个位置,因此p[1]是指a,那么c选项就是访问a的第一个元素
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
你还我账户
2013-01-26 · TA获得超过118个赞
知道答主
回答量:175
采纳率:0%
帮助的人:88.5万
展开全部
还是学生吧,看看 《c 与 c指针》
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d580670
2013-01-26 · TA获得超过1983个赞
知道大有可为答主
回答量:2054
采纳率:82%
帮助的人:699万
展开全部
int (*p)[3]可以看做struct{int m [3]}*p;表示一个装有三个整数的指针,p[1]相当于地址加3个整形的大小,再加一相当于地址又加了1
追问
这个(*p)[3]没赋值前是个3维数组指针。赋值之后变成2维数组指针了对嘛?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式