试题题干
main()
{ struct student
{ char name[10];
float k1;
float k2;
}a[2]={{"tom",50,60},{"make",70,80}},*p=a;
int i;
printf("\n name:%s total=%f\n",p->name,p->k1+p->k2);
printf("\n name:%s total=%f\n",a[1].name,a[1].k1+a[1].k2);
}
参考答案
试题解析
*p=a;是指指针变量指向数组a[]的首地址,即在输出函数中的p->name指的是数组a[2]中的tom,p->k1指的是50,p->k2指的是60,即输出p->k1+p->k2的值为110.000000;
a[1].name指的是数组a[2]中的make,a[1].k1的值为70,a[1].k2的值为90,即输出a[1].k1+a[1].k2的值为160.000000。