/结构体指针访问成员/
#include<stdio.h>
struct Student
{
int num;
char name[20];
float score;
};
int main()
{
//1.
//该种方法用指针指向一个结构体,使用时p->成员名
/struct Student p;
struct Student stu1={001,“zb”,90.5};
p=&stu1;
printf(“学号\t姓名\t分数\n”);
printf("%d\t%s\t%0.1f\n",p->num,p->name,p->score);*/
//2.该种方法是定义一个指针变量,只指向一个struct Student的结构体
/*
struct Student* p;
struct Student stu={001,"zhao",90.5};
p=&stu;
printf("学号\t姓名\t分数\n");
printf("%d\t%s\t%0.1f\n",(*p).num,(*p).name,(*p).score);*/
//3.该种方法定义了一个指针变量,定义了一个结构体数组,
//然后用for循环,使指针移动,注意该处是用指针访问每一个结构体变量
//的值——(*p).成员名
int i;
struct Student* p;
struct Student stu[2]={{001,"zhao",90.5},{002,"qam",95.5}};
printf("学号\t姓名\t分数\n");
for(p=stu;p<stu+2;p++)
{
printf("%d\t%s\t%0.1f\n",(*p).num,(*p).name,(*p).score);
}
//4.
//该种方法直接用结构体变量引用,使用时——结构体变量.成员名
//struct Student stu1={001,"zb",90.5};
//printf("学号\t姓名\t分数\n");
//printf("%d\t%s\t%0.1f\n",stu1.num,stu1.name,stu1.score);
getchar();
return 0;
}