第9章结构体共用体与枚举 9.4结构体类型指针 9.5结构体与函数 9.6链表《C语言程序设计》同步教学课件(电子工业出版社)

2023-08-08
| 15页
| 137人阅读
| 1人下载
精品

内容正文:

第9章 结构体、共用体与枚举类型 本章内容 9.1结构体类型的定义 9.2结构体变量 9.3结构体数组 9.4结构体类型指针 9.5结构体与函数 9.6链表 9.7共用体类型 9.8枚举类型 9.9类型定义 9.10综合案例 9.4结构体类型指针 9.4.1指向结构体变量的指针 结构体指针变量的定义 结构指针变量定义的一般形式为: struct 结构体名 *结构指针变量名; 例如:struct student *pstu,student1; pstu=&student1; 结构体指针变量的使用 结构体指针变量访问结构体的一般形式为: (*结构体指针变量).成员名 或 结构指针变量->成员名 例如: (*pstu).num 或 pstu->num 程序举例 【例9.4】利用结构体变量和结构体指针变量输出结构体内容 struct student { int num; char name[20]; char sex; int age; float score; char addr[40]; }student1={102,"Zhang ping",'M',20,78.5, "Beijing"},*pstu; main() { pstu=&student1; printf("Num=%d ",student1.num); printf("Name=%s ",student1.name); printf("Sex=%c ",student1.sex); printf("age=%d ",student1.age); printf("Num=%d ",(*pstu).num); printf("Name=%s ",(*pstu).name); printf("Sex=%c ",(*pstu).sex); printf("age=%d ",(*pstu).age); printf("Num=%d ",pstu->num); printf("Name=%s ", pstu->name); printf("Sex=%c ", pstu->sex); printf("age=%d ", pstu->age); } 9.4.2指向结构体数组的指针 例子: struct student stu [4],*p; p = stu; p是指向一维结构体数组的指针,对数组元素的引用可采用三种方法 地址法 (stu+i)-> name、(stu+i)->num 或 (p+i)->name、(p+i)->num等。 指针法 若p指向数组stu的某一个元素,则p++指向数组的下一元素。 指针的数组表示法 若p=stu,对数组成员的引用可以描述为:p[i].name、p[i].num等,这与stu[i].name、stu[i].num是等价的。 程序举例 【例9.5】每个同学有3门课程的成绩,共有5个同学,分别计算每个同学的平均成绩并输出。 #include <stdio.h> struct score { int num; char name[20]; float sc[3]; }; main() { struct score s[5]={ {1001,"Li Lin",{50,70,90}}, {1002,"Zhao Mei",{70,80,90}}, {1003,"Liu Li",{60,70,80}}, {1004,"Zhang Yan",{50,70,60}}, {1005,"Sun Jing",{60,80,90}} }; struct score *p; float avg[5]; int i,j; float t; p=s; /*指向数组的首地址*/ for(i=0;i<5;i++) { t=0; for(j=0;j<3;j++) /*计算每个同学的3门课程成绩的和*/ t+=(p+i)->sc[j]; avg[i]=t/3; /*计算平均成绩,并保存到数组avg[i]中*/ } for(i=0;i<5;i++) printf("%d\t%-20s\t%.1f ",(p+i)->num ,(p+i)->name ,avg[i]); } 9.5结构体与函数 9.5.1结构体变量作为函数参数 在传送结构体类型的参数时,系统将实参结构体变量的所有成员的值传递给形参结构体变量 【例9.6】将例9.5改为用函数计算某个同学的平均成绩,然后在main函数中调用该函数计算所有同学的平均成绩。 #include <stdio.h> struct score { int num; char name[20]; float sc[3]; }; float

资源预览图

第9章结构体共用体与枚举 9.4结构体类型指针 9.5结构体与函数 9.6链表《C语言程序设计》同步教学课件(电子工业出版社)
1
第9章结构体共用体与枚举 9.4结构体类型指针 9.5结构体与函数 9.6链表《C语言程序设计》同步教学课件(电子工业出版社)
2
第9章结构体共用体与枚举 9.4结构体类型指针 9.5结构体与函数 9.6链表《C语言程序设计》同步教学课件(电子工业出版社)
3
第9章结构体共用体与枚举 9.4结构体类型指针 9.5结构体与函数 9.6链表《C语言程序设计》同步教学课件(电子工业出版社)
4
第9章结构体共用体与枚举 9.4结构体类型指针 9.5结构体与函数 9.6链表《C语言程序设计》同步教学课件(电子工业出版社)
5
第9章结构体共用体与枚举 9.4结构体类型指针 9.5结构体与函数 9.6链表《C语言程序设计》同步教学课件(电子工业出版社)
6
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。