结构体名 和 结构体变量 是两个不通的概念 , 结构体名是系统区别定义的多个结构体的标识 只是表示某种结构形式
系统不对它实际 分配内存空间
只有当结构类型变量被定义时,才对该变量分配内存空间。。。。结构体名的首地址 是不存在的啊!
p->num //访问当前指向的结构体变量中的成员num
p->num++ //访问 ps当前指向的结构体变量中的成员num后 是num的值加1
++p->num //先 使ps当前指向的结构体变量中的成员num的 值加 1后,在访问
#include <stdio.h>
struct student
{
int num;
char name[20];
char sex;
float score;
}boy[2]={{1001,"wangbin",'M',45},{1002,"zhaolihua",'F',45}};
void avg(struct student *p)
{
int c=0,i;
float ave,s=0;
for(i=0;i <2;i++,p++)
{
s+=p->score;
if(p->score <60)
c+=1;
}
ave=s/5;
printf("average=%f ncount=%d\n",ave,c);
}
void main()
{
struct student *ps;
ps=boy;
avg(ps);
}