struct st{ int x,y}data[2]={1,10,2,20};main(){ struct st *p=data;printf("%d",p->y);printf("%d\n",(++p)->x);data[2]={1,10,2,20};这个data[2]不是只能有两个数么?另请重点讲下最后三句怎么解释.

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/13 13:58:48
struct st{ int x,y}data[2]={1,10,2,20};main(){ struct st *p=data;printf(y);printf("%d\n",(++p)->x);data[2]={1,10,2,20};这个data[2]不是只能有两个数么?另请重点讲下最后三句怎么解释." />

struct st{ int x,y}data[2]={1,10,2,20};main(){ struct st *p=data;printf("%d",p->y);printf("%d\n",(++p)->x);data[2]={1,10,2,20};这个data[2]不是只能有两个数么?另请重点讲下最后三句怎么解释.
struct st
{ int x,y
}data[2]={1,10,2,20};
main()
{ struct st *p=data;
printf("%d",p->y);
printf("%d\n",(++p)->x);
data[2]={1,10,2,20};这个data[2]不是只能有两个数么?
另请重点讲下最后三句怎么解释.

struct st{ int x,y}data[2]={1,10,2,20};main(){ struct st *p=data;printf("%d",p->y);printf("%d\n",(++p)->x);data[2]={1,10,2,20};这个data[2]不是只能有两个数么?另请重点讲下最后三句怎么解释.
因为st里面有2个成员x,y,将1和10赋值给data[0].x和data[0].y,2和20赋值给data[1].x和data[1].y
最后三句的意思
定义结构体指针指向data[0]
p->y也就是data[0].y,也就是10
(++p)->x,就是++p,然后取p->x
也就是data[1].x=2