这个程序为什么会type mismatch?
main(){
struct student
{
int num;
char name[10];
int grade[3];
};
struct student a[]={{0,"andy",{89,23,43}},{1,"peter",{87,45,90}},{2,"t-bag",{99,90,98}}};
struct student *p=a;
void print(struct student *);
print(p);
}
void print(struct student *s) /* type mismatch */
{
int n,m;
for(n=0;n<3;n++,s++)
{
printf("number:%d\nname:%s\ngrade:",s->num,s->name);
for(m=0;m<3;m++)
printf("%4d",(*s).grade[m]);
putchar('\n');
}
}