有以下定义和语句 C语言

inta[3][2]={1,2,3,4,5,6,},*p[3];p[0]=a[1];则*(p[0]+1)所代表的数组元素是C。A.a[0][1]B.a[1][0]C.a[... int a[3][2]={1,2,3,4,5,6,},*p[3]; p[0]=a[1];

则*(p[0]+1)所代表的数组元素是 C。

A. a[0][1]
B. a[1][0]
C. a[1][1]
D. a[1][2]
参考答案: C
为什么,过程
展开
 我来答
维乐心灵音乐
2011-06-06 · TA获得超过531个赞
知道小有建树答主
回答量:1063
采纳率:50%
帮助的人:483万
展开全部
int a[3][2]={1,2,3,4,5,6}产生的结果是
a[0][0]=1,a[0][1]=2,a[1][0]=3,a[1][1]=4,a[2][0]=5,a[2][1]=6
根据数组的表示法,数组名可以指代数组整体,还可以指代数组头元素位置
也就是说a[0]就是表示1,2中的那个1的位置,a[1]就表示3,4中3的位置,类推a[2]指的是5的位置
*p[3]是声明一个整形指针的数组,也就是说是三个p,每个p都是指向整数的
p[0]=a[1]就是相当于p[0]=&a[1][0],也就是让p[0]指向3的位置
--------------------以上是题设的内容-----------------------
p[0]+1,根据指针的用法,指针进行加减操作,就是让指针在内存中前后移动
那么p[0]原来指向3的位置,p[0]+1就是让指针后移,那么就是指到了4的位置上
而*(指针),表示的是指针所指位置上的实际变量,即*(4的位置)那么就是4了,也就是a[1][1]
古龙南琴0b8
2011-06-06 · TA获得超过229个赞
知道小有建树答主
回答量:366
采纳率:0%
帮助的人:184万
展开全部
a是3*2数组,a[][]是int型,则a[]为int型指针,int *p[3]申请了长度为3的指针型数组,也就是说p[0]、p[1]、p[2]都是指针,将a[1]赋给p[0],p[0]就是一个指针型,指向a[1][0](注意:*a相当于a[0],*(p[0])既是p[0][0],*(a[1])就是a[1][0]),又因为数组在内存中是顺序存放,p[0]+1就指向数组中的下一个元素,即a[1][1]。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式