下面程序的输出结果是
#include<stdio.h>structst;{intx;int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&d...
#include<stdio.h>
struct st;
{int x;
int *y;
}*p;
int dt[4]={10,20,30,40};
struct st aa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]};
void main()
{p=aa;
printf("%d",++p->x);
printf("%d",(++p)->x;);
printf("%d",++(*p->y));
}
解释下,谢咯 展开
struct st;
{int x;
int *y;
}*p;
int dt[4]={10,20,30,40};
struct st aa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]};
void main()
{p=aa;
printf("%d",++p->x);
printf("%d",(++p)->x;);
printf("%d",++(*p->y));
}
解释下,谢咯 展开
展开全部
运行结果:
51
60
21
程序
#include<stdio.h>
struct st //原程序多了个分号
{int x;
int *y;
}*p;
int dt[4]={10,20,30,40}; //定义数组dt
struct st aa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]};
//定义结果数组aa
void main()
{p=aa; //结构指针p指向结构数组aa[0]
printf("%d\n",++p->x); //对aa[0]->x=50进行加1操作后输出
printf("%d\n",(++p)->x); //原程序括号位置错,指针加1后输出.即移到数组aa[0]的下一位置aa[1]处,此时,aa[1]->x=60
printf("%d\n",++(*p->y));//对aa[1]->y所指向的内容加1后输出,即地址&dt[1]的内容20加1后输出
}
51
60
21
程序
#include<stdio.h>
struct st //原程序多了个分号
{int x;
int *y;
}*p;
int dt[4]={10,20,30,40}; //定义数组dt
struct st aa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]};
//定义结果数组aa
void main()
{p=aa; //结构指针p指向结构数组aa[0]
printf("%d\n",++p->x); //对aa[0]->x=50进行加1操作后输出
printf("%d\n",(++p)->x); //原程序括号位置错,指针加1后输出.即移到数组aa[0]的下一位置aa[1]处,此时,aa[1]->x=60
printf("%d\n",++(*p->y));//对aa[1]->y所指向的内容加1后输出,即地址&dt[1]的内容20加1后输出
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询