c语言题。求解执行以下程序后输出值,以及详细解答步骤。谢谢。

#include<stdio.h>intmain(void){structwc{inta,*b;}*p;intx0[]={11,12},x1[]={31,32};stat... #include<stdio.h>
int main(void)
{
struct wc{int a,*b;}*p;
int x0[]={11,12},x1[]={31,32};
static struct wc x[2]={100,x0,300,x1};
p=x;
printf("%d",*(++p)->b);
}
展开
 我来答
糖酥棍儿
2012-06-11 · TA获得超过692个赞
知道小有建树答主
回答量:393
采纳率:0%
帮助的人:390万
展开全部
最终值为 31

struct wc{int a,*b;}*p; 是一个结构体的声明。
static struct wc x[2]={100,x0,300,x1}; 这个是结构体数组的变量的定义和初始化。
即结构体数组元素: x[0] = {100,x0}; x[1] = {300,x1};
p=x ; 就是结构体指针 p 指向 结构体数组的首地址 x 为数组的首地址。
printf("%d",*(++p)->b); 先执行 括号内的: ++p 是先地址+1 ,后将使用这个地址,即 (++p) 后相当于 p=p+1 ; 即 此时 p 执行数组的第二个元素 x[1]; p->b 取到的是 x1 数组首元素的地址,即最终 *(++p) ->b = 31 就是 数组 x1 的第一个元素的值
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式