以下程序的输出结果为()
#include
struct st
{
intx;
int*y;
}*p;
intdt[4]={10,20,30,40};
structst aa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0]};
void main()
{
p=aa;
printf("%d\n",++(p->x));
}
A.10B.11C.51D.60
首先 了解aa这个结构体数组怎么赋值
aa[4]={{50,&dt[0]},{60,&dt[0]},{60,&dt[0]},{60,&dt[0]}}; //完整写应该是这样 分别对应 aa[0].x,aa[0].y,aa[1].x,aa[1].y,aa[2].x,aa[2].y,aa[3].x,aa[3].y,
赋值完把aa首地址给了p;
p此时指向aa[0]的位置,然后取x的值 为 50 输出前自增得到51 选c
如果此时取y的值 因为y是指针所以 *(p->y)会得到dt[0]的值为10 依次类推