131结构体类型变量的定义和引用 结构体类型变量的初始化和赋值 ■C允许定义嵌套的结构体类型 struct data struct stu i int day; i char name[20]; int mouth struct data birthday; int year; long num; 3 person; 如果成员本身又是一个结构则必须还级找到最低级的成员 才能使用:用若干“”运算符,逐级引用到最低级。 如: person name、 person. birthday.day、 person. birthday month、 person. birthday year、 person. num o 第十三章结构体与共用体
第十三章 结构体与共用体 ◼ C允许定义嵌套的结构体类型 struct data struct stu { int day; { char name[20]; int mouth; struct data birthday; int year; long num; }; } person; 如果成员本身又是一个结构则必须逐级找到最低级的成员 才能使用:用若干“.”运算符,逐级引用到最低级。 如:person.name 、person.birthday.day、 person.birthday.month、person.birthday.year、 person.num 。 13.1 结构体类型变量的定义和引用 二、结构体类型变量的初始化和赋值
132结构体数组的定义和引用 结构体类型数组的定义形式为: struct stu i char name[20]: char sex long num: float score 3 ]: struct stu stud|20];/*该数组有20个结构体类型元素*/ 其数组元素各成员的引用形式为: stud o]. name, stud o sex stud o score]: stud]. name, stud1sex, stud1 score]: stud 19. name\ stud 19.sex, stud 19.scorei; 第十三章结构体与共用体
第十三章 结构体与共用体 ◼ 结构体类型数组的定义形式为: struct stu { char name[20]; char sex; long num; float score[3]; }; struct stu stud[20]; / *该数组有2 0个结构体类型元素* / 其数组元素各成员的引用形式为: stud[0].name 、stud[0].sex 、stud[0].score[i]; stud[1].name 、stud[1].sex 、stud[1].score[i]; …… stud[19].name 、stud[19].sex 、stud[19].score[i]; 13.2 结构体数组的定义和引用
132结构体数组的定义和引用 「例13.3计算学生的平均成绩和不及格的人数。 struct stu int num; char *name char sex float score boy 5=k1ol, "li ping,, M,, 453,(102, " Zhang ping”;M,62.5},{103," He fang”,"F,92.5},{104," Cheng ling”,"F,87},{105," Wang ming","M',58}}; main( i int i, c=0 float ave, s=0: for(i=0;i<5;i++) i St=boy[]. score if(boyi]. score<60)c+=l printi(“s=%fn”,s);ave=s/5 printf(average=%fncount=%odn", ave, c); 第十三章结构体与共用体
第十三章 结构体与共用体 [例13.3]计算学生的平均成绩和不及格的人数。 struct stu { int num; char *name; char sex; float score; }boy[5]={{101,"Li ping”,'M’,45},{102,"Zhang ping”,'M’,62.5},{103,"He fang”,'F’,92.5},{104,"Cheng ling”,'F’,87}, {105,"Wang ming",'M',58},}; main( ) { int i,c=0; float ave,s=0; for(i=0;i<5;i++) { s+=boy[i].score; if(boy[i].score<60) c+=1; } printf(“s=%f\n”,s); ave=s/5; printf("average=%f\ncount=%d\n",ave,c); } 13.2 结构体数组的定义和引用
133结构体指针的定义和引用 指向结构体类型变量的使用 ■已知结构体stu,定义指向结构体类型变量 的指针变量: struct stu i char name 201: long number float score[ 4] i stul; struct stu * pl p p 2 第十三章结构体与共用体
第十三章 结构体与共用体 ◼ 已知结构体stu,定义指向结构体类型变量 的指针变量: struct stu { char name[20]; long number; float score[4]; } stu1; struct stu *p1, *p2 ; 13.3 结构体指针的定义和引用 一、指向结构体类型变量的使用
133结构体指针的定义和引用 指向结构体类型变量的使用 ■引用形式: 指针变量名→成员名 当指针真正指向了结构体型变量后,以下 三种引用形式是等价的 1、结构体变量成员名; 2、(*指针变量名)成员名 3、指针变量名→>成员名; 第十三章结构体与共用体
第十三章 结构体与共用体 ◼ 引用形式: 指针变量名→成员名; 当指针真正指向了结构体型变量后,以下 三种引用形式是等价的: 1、结构体变量.成员名; 2、(*指针变量名).成员名 3、指针变量名->成员名; 13.3 结构体指针的定义和引用 一、指向结构体类型变量的使用