结构体与数组
结构体数据与结构体指针是可以存放在数组中的。下面的代码演示了如何用数组来存放结构体数据与结构体指针。
typedef struct _student
{
int age;
char sex;
char name[20];
}student,*pstudent;
int _tmain(int argc, _TCHAR* argv[])
{
student *stu3[2];//结构体指针数组
student stus[3]={{25,'M',"tom"},{22,'F',"lucy"},{23,'M',"david"}};//结构体数组与初始化
student stu2[2];//结构体数组
//初始化结构体数组stu2
for(int i=0;i<2;i++)
{
printf("Please input the age,sex,name(<=20)\n");
fflush(stdin);
scanf_s("%d %c %s",&stu2[i].age,&stu2[i].sex,stu2[i].name,20);
}
//初始化结构体指针数组stu3
for(int i=0;i<2;i++)
{
stu3[i]=&stu2[i];
}
//遍历结构体指针数组stu3
for(int i=0;i<2;i++)
{
printf("stu3:age:%d,sex:%c,name:%s\n",
stu3[i]->age,stu3[i]->sex,stu3[i]->name);
}
printf("\n");
//遍历结构体数组stus
for(int i=0;i<3;i++)
{
printf("stus:age:%d,sex:%c,name:%s\n",
stus[i].age,stus[i].sex,stus[i].name);
}
printf("\n");
//遍历结构体数组stu2
for(int i=0;i<2;i++)
{
printf("stu2:age:%d,sex:%c,name:%s\n",
stu2[i].age,stu2[i].sex,stu2[i].name);
}
return 0;
}