欢迎来到天天文库
浏览记录
ID:59212910
大小:582.00 KB
页数:52页
时间:2020-09-26
《第9章 C语言结构体数据类型与链表ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、返回第9章结构体数据类型与链表9.1结构体类型的定义C语言程序设计教程9.2结构体类型变量9.3结构体类型数组9.4结构体类型指针9.5结构体与函数9.6链表9.1结构体类型的定义1.结构体类型的定义struct结构体类型名{类型标识符成员名1;类型标识符成员名2;……类型标识符成员名n;};其中:struct是关键字下一页第9章结构体数据类型与链表上一页2.定义结构体类型,描述下列数据1)学生情况:包含学生的学号、姓名、性别、年龄、C语言课程成绩:structstudent{intno;/*学号*/charname[10];/*姓名*/charsex;/*性别*
2、/intage;/*年龄*/floatscore;/*C成绩*/};structstudent应作为一个类型整体name[10]、sex、age、score都是其成员struct及花括号后的“;”不能省。下一页第9章结构体数据类型与链表注意上一页如考虑10门课程成绩,加上总成绩与平均成绩,可作如下定义:structstudent{intno;/*学号*/charname[20];/*姓名*/charsex;/*性别*/intage;/*年龄*/floatscore[11];/*30门课程成绩*/floattcj,acj;/*总成绩,平均成绩*/};下一页
3、第9章结构体数据类型与链表上一页(2)个人数据:包含姓名、性别、年龄、身高、体重、住址:structperson{charname[20];/*姓名*/charsex;/*性别*/intage;/*年龄*/floatheight;/*身高*/floatweight;/*体重*/charaddr[50];/*住址*/};下一页第9章结构体数据类型与链表上一页(3)平面上的点:structpoint2{floatx;/*横坐标*/floaty;/*纵坐标*/};如考虑空间中的点,可作如下定义:structpoint3{floatx;/*X坐标*/flo
4、aty;/*Y坐标*/floatz;/*Z坐标*/};下一页第9章结构体数据类型与链表上一页(4)日期,包括年、月、日:structdate{intyear;/*年*/month;/*月*/day;/*日*/};结构体类型可嵌套定义即一个结构体类型中的某些成员又是其他结构体类型。例如:第9章结构体数据类型与链表如职工信息结构体类型为:structperson{charname[20];/*姓名*/charaddress[40];/*地址*/floatsalary;/*工资*/floatcost;/*扣款*/structdatehiredate;/*聘任日期*/
5、};返回上一页9.2结构体类型变量1.先定义结构体类型,再定义结构体变量形式:struct结构体名结构体变量名表;例如:对已定义的结构体类型structstudent,可以定义结构体变量:structstudentzhang,stu1;structpersonp[50];/*50个职工人的数据*/下一页第9章结构体数据类型与链表9.2.1结构体类型变量的定义上一页struct结构体类型名{类型标识符成员名1;类型标识符成员名2;……类型标识符成员名n;}变量名表;例如:structstudent{charname[20];charsex;intage;floats
6、core;}stu1,stu2;下一页第9章结构体数据类型与链表2.在定义结构体类型的同时定义变量形式:上一页struct{类型标示符成员名1;类型标示符成员名2;……类型标示符成员名n;}变量名表;例如:struct{charname[20];charsex;intage;floatscore;}stu1,stu2;下一页第9章结构体数据类型与链表3.用匿名形式直接定义结构体类型变量(不出现结构体名)上一页(1)类型与变量是不同的概念,不要混同。对结构体变量来说,在定义时一般先定义一个结构体类型,然后定义变量为该类型。只能对变量赋值、存取或运算,而不能对一个类型赋值、存
7、取或运算。在编译时,对类型是不分配存储空间的,只对变量分配存储空间。(2)对结构体中的成员,可以单独使用,它的作用与地位相当于普通变量。(3)成员也可以是一个结构体变量下一页第9章结构体数据类型与链表说明上一页structdate{intmonth;intday;intyear;};定义structstudent结构体类型时,成员birthday的类型定义为structdate类型。(4)成员名可与程序中的变量同名,两者不代表同一对象。例如,程序中可以另定义变量no,它与structstudent中的no是两回事,互不干扰。s
此文档下载收益归作者所有