问一道计算机等级考试C语言题目,求详解

 我来答
huangxinzbz
2015-12-04 · TA获得超过589个赞
知道小有建树答主
回答量:266
采纳率:100%
帮助的人:331万
展开全部
#include <stdio.h>
void main(void)
{
/*
address value

a[0] {1,2,3}

a[1] {4,5,6}

a[2] {7,8,9}

a[3] {10,11,12}

*/

int a[4][3] = {1,2,3,4,5,6,7,8,9,10,11,12};

int *p[4], j; /* p[4] 是指针数据,它们的值都是地址 */
/*
address value

p[0],a[0] {1,2,3}

p[1],a[1] {4,5,6}

p[2],a[2] {7,8,9}

p[3],a[3] {10,11,12}

*/
for(j=0;j<4;j++) p[j]=a[j];
printf("%2d,%2d,%2d,%2d\n",*p[1],(*p)[1],p[3][2],*(p[3]+1));

/*
按以上表格解释

*p[1],[]运算符高于*, 所以p[1]的值是a[1]即{4,5,6}的首地址,*p[1]从其取出值为4

(*p)[1], ()运算符高于[],所以先做*p,它是a[0]即{1,2,3}的地址,(*p)[1]取值为2
p[3][2], p[3][2]对照上表,即12
*(p[3]+1), p[3]的值是a[3]即{10,11,12}的首地址,(p[3]+1)即{11,12}的首地址,*(p[3]+1]取值即为11

*/

}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式