战士旋风斧任务 材料:c语言问题

来源:百度文库 编辑:高考问答 时间:2024/04/27 07:48:20
【2.55】以下程序的输出结果是____。
struct st
{ int x,*y;
}*p;
int s[]={10,20,30,40};
struct st a[]={1,&s[0],2,&s[1],3,&s[2],4,&s[3]};
main()
{ p=a;
printf("%d\n",++(*(++p)->y));
}
A) 10 B) 11 C) 20 D) 21
参考答案D,要求有详细分析过程。

struct st //定义结构体类型st
{ int x,*y; //该结构体包含元素整型x,和指针y
}*p; //声明结构体st类型的指针p
int s[]={10,20,30,40}; //数组s,共4各元素
struct st a[]={1,&s[0],2,&s[1],3,&s[2],4,&s[3]}; //声明结构体数组a,共4元素(1,&s[0]为一个元素)
main()
{ p=a; //将指针p指向a的地址
printf("%d\n",++(*(++p)->y)); //得到p指向a第二个元素y所指向的数字并加1输出
}
所以答案为21

楼上回答的好啊,详细。

太简单了
这都不知道就有点问题