#include
struct STU
{char name[10];
float score;};
main ()
{struct STU s[3]={{"Zhang",90},{"Li",95},
{"Wang",93}},*p=s;
int i;
float sum=0;
for(i=0;i<3;i++)sum=sum+p->score;
printf ("%6.2f\n", sum);
}
*p=s,p指向s数组开头,for循环并没有使p移动,也就是p一直指向s开头,循环3次sum=sum+p->score,实际上是s[0]相加了3次,就是270。
因为初始时,指针变量p是指向结构体中的第一个变量的;在for循环中,并没有改变指针p指向的地址,所以三次循环,都是对它指向的第一个变量的成员进行运算,即90相加三次。