#include<stdio.h>
typedef struct
{
int num;
char name[20];
float score;
}STU;
int main()
{
STU edu[3]={
{101,"lucy",78},
{102,"bob",59.5},
{103,"Tom",85}
};
int i;
float sum=0;
for(i=0;i<3;i++)
{
sum +=edu[i].score;
printf("Average score is %.2lf\n",sum / 3);
}
}
结构体的数组区别于普通的结构体定义,在
于struct xxx[]后有中括号
本文使用的定义方法为typedef 即定义其为STU
在后期的数组调用时候,只需要 STU edu[3]
这段代码展示了于结构体STU定义结构体数组edu的过程
在后期我们调用edu这一STU类型的结构体数组时,只使用edu[i].score这样的方式调用
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct stu{
int id;
char name[32];
char sex;
int age;
};
int main()
{
struct stu *s;
s=(struct stu *) malloc(sizeof(struct stu));
s->id=1001;
strcpy(s->name,"张三");
s->sex='b';
s->age=20;
printf("%d %s %c %d\n",s->age,s->name,s->sex,s->id);
}
———————————————————————————————————————————
分析上面的代码 我们得出了结论
在结构体的指针形式中
我们可以用结构体名->结构体部分的方式定义
例如s->name 这里就是s这个指针变量指向了name这个结构体的部分