欢迎来到天天文库
浏览记录
ID:62164878
大小:404.00 KB
页数:64页
时间:2021-04-20
《最新第10章 结构体和链表63PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第10章结构体和链表6310.1结构体类型定义10.1结构体类型的定义与变量说明我们所处理的数据并非总是一个简单的整型、实型或字符型数据。如我们要处理的对象是学生,不可能孤立地考虑学生的成绩,而割裂学生成绩与学生其它属性之间的内在联系。学生的成绩、姓名、学号等是一组逻辑相关的数据,孤立地考虑这些属性,将导致操作的不便或逻辑错误。解决以上问题的方法就是引入结构体类型,将逻辑相关的数据有机组合在一起,称之为结构体。一.结构体类型的定义struct结构体类型名{数据成员列表;};结构体类型的一般定义形式为:定义结构体类型的标识符用户命名的标识符结构体类型定义的结束符1
2、0.1结构体类型定义3.直接定义结构体变量struct{longID;charname[10];charsex;intage;floatscore;charaddr[30];}stu1,stu2;结构体变量的三种形式可以任意选用。但在不同函数中定义说明同一类型的结构体变量时,用第三种方法不太方便,一般用第一种和第二种定义形式。10.1结构体类型定义三.结构体类型的嵌套结构体类型的嵌套是指结构体的成员是一个结构体类型。若定义学生信息为结构体,其成员分别为:学号、姓名、性别、出生年月、成绩。其中出生年月包括出生的年、月、日三个数据,这些数据可以用另一个结构体类型表示
3、。例如,定义student结构体。(1)先定义date结构体:structdate{intyear;intmonth;intday;};(2)再定义student结构体:structstudent{longID;charname[10];charsex;structdatebirthday;floatscore;};10.1结构体类型定义10.2结构体类型变量的引用与初始化一.结构体类型变量的引用对一个结构体类型变量的引用是通过引用它的每一个成员来实现的。引用运算符有两个:.->其中,“->”为结构体指针运算符,引用一个结构体变量的成员有两种方法:结构体变量名、
4、指向结构体的指针变量结构体成员运算符“.”在所有运算符中优先级最高.结构体变量不能作为一个整体进行输入输出,只能对其成员分别输出。10.2结构体变量引用用结构体变量名引用其成员的一般形式:结构体变量名.成员名其中,“.”称为结构体成员运算符,将结构体变量名与成员名连接起来,它具有最高级别的优先级。结构体变量可以单独引用其成员,也可作为一个整体引用,还可以引用结构体变量或成员的地址。1.单独引用结构体变量的成员structclock{inthour,minute,second;};structdate{intyear,month,day;structclockti
5、me;};structdatetoday;today.year=2004;today.month=4;today.day=12;today.time.hour=16;today.time.minute=47;today.time.second=15;10.2结构体变量引用2.结构体变量作为一个整体引用结构体变量不可以作为整体进行输入输出,但可以作为函数的参数或返回值而被整体引用,也可以将一个结构体变量作为一个整体赋给另一个具有相同类型的结构体变量。structdate{intyear,month,day;};structdatenextday(day)struc
6、tdateday;{structdatetemp;...return(temp);}函数nextday的形参day为结构体类型,它将整体接受同类型实参的值10.2结构体变量引用3.引用结构体变量的地址或成员的地址引用结构体变量的成员地址,要在结构体成员引用的前面再加“&”运算符.结构体变量a的成员t赋值:scanf(”%d”,&a.t);引用结构体变量的地址,在结构体变量的前面直接加“&”:printf("%X",&a);10.2结构体变量引用二.结构体类型变量的初始化结构体变量可以在说明的同时初始化。structclock{inthour,minute,sec
7、ond;};structdate{intyear,month,day;structclocktime;};structdatetoday={2004,4,12,17,4,30};structdatetoday={2004,4,12,{17,4,30}};10.2结构体变量引用10.3结构体类型与数组一.结构体数组的定义1.先定义结构体类型,后定义结构体数组structstudentstudents[100];2.结构体数组与结构体类型同时定义structstudent{longID;charname[10];intage;floatscore[3];}stude
8、nts[100];3.不
此文档下载收益归作者所有