一个新手关于C语言的问题,求高手的解答~~

structH{intx;int*y;}xy[2];voidf(structH*p){(p+1)->x=10;(*p).x=20;(*p).y=&((*(p+1)).x)... struct H
{int x;int *y;}xy[2];
void f(struct H *p)
{ (p+1)->x=10;
(*p).x=20;
(*p).y=&((*(p+1)).x);
(*(p+1)).y=&(p->x);
}
main()
{struct H *q=xy;
f(q));
printf("%d,%d\n",*(q->y),*(xy[0},y));
}

这道题的答案是10,10 我想知道计算过程,求各位高手帮忙解答~~~拜托各位了~~~
展开
 我来答
72water
2009-08-03
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
struct H
{
int x;
int *y;
}xy[2];

void f(struct H *p)
{
(p+1)->x=10; //xy[1].x = 10;
(*p).x=20; //xy[0].x = 20;
(*p).y=&((*(p+1)).x); //xy[0].y = &(xy[1].x)
(*(p+1)).y=&(p->x); //xy[1].y = &(xy[0].x)
}
main()
{
struct H *q=xy;
f(q);
printf("%d,%d\n",*(q->y),*(xy[0].y));
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式