求大佬帮帮忙!!!!C语言一道关于结构体数组和指针的问题!

#include<stdio.h>

struct student 
{
	char name[20];
	char number[20];
};
void main()
{
	int i;
	struct student si[3]={{"qiao","098873"},{"zhang","098373"},{"li","984739"}};
	struct student *p;
	for(i=0;i<3;i++)
	{
		p=&si[i];
		printf("%s\t%s",p->name,p->number);
	}
	}

 

p是结构体指针  可以指向一个结构体变量数组,

如  p=&si[0];     p=&si[1];是错误,不能这么表示,因为si[3]是个结构体变量数组,指针识别不了数组中的单个变量。如果非得用指针输出结构体数组,可以这样:  望采纳,,