一个新手关于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 我想知道计算过程,求各位高手帮忙解答~~~拜托各位了~~~ 展开
{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 我想知道计算过程,求各位高手帮忙解答~~~拜托各位了~~~ 展开
展开全部
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));
}
{
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));
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询