欢迎来到天天文库
浏览记录
ID:41284370
大小:1.08 MB
页数:114页
时间:2019-08-21
《《结构和链表》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7章结构和链表7.1结构类型和结构变量7.2结构数组7.3结构与函数7.4链表*7.5联合*7.6位域*7.7枚举*7.8类型定义*7.9变量定义1基本类型:如整型、实型、字符型等。构造类型:数组,每个元素都是属于同一个类型。结构类型:不同的数据类型组成一个整体方便引用。例如:一个学生数据实体可能有以下多项信息学号、姓名、性别、年龄、成绩、家庭地址intcharcharintfloatchar说明:这类实体的数据因所包含的成员类型不同,不能用单个数组来表示,也不便将它们的成员分拆成多个独立的简单变量,因为这样会失去实体的整体性。7.1结构类型和结构变量2结构类型形式:s
2、truct结构类型名{成员说明表};其中关键字“struct”:引出结构类型的定义。结构类型名:结构类型的标记,用来定义引用该结构的结构变量。成员说明表:指明该结构类型的各成员的数据类型和名称。每个成员的说明形式为:类型成员名;1.结构类型3【例】学生基本信息的结构类型:structstudent{intnumber;/*学号*/charname[20];/*姓名,设姓名少于20个字符*/charsex;/*性别*/charaddress[40];/*家庭地址*/};说明:在C++中,如果不会引起混淆(例如,结构类型与结构变量同名),引用结构类型可以不用struct引导。
3、结构类型例4当结构类型中的某个成员又是另一个结构类型时,这种结构类型是一种嵌套的结构类型。例如,给上述学生信息增加出生日期,并将出生日期定义为一种包含日、月、年3项信息的结构类型,则更完整的学生信息类型就被定义成嵌套的结构类型。嵌套的结构类型5structDate{intday;/*日*/intmonth;/*月*/intyear;/*年*/};structstudent{intnumber;/*学号*/charname[20];/*姓名*/charsex;/*性别*/structDatebirthday;/*嵌套Date结构*/charaddress[40];/*家庭地
4、址*/};嵌套的结构类型例6在结构类型定义中,详细列出了结构类型所包含的每个成员的名称及其类型。实际上,结构类型定义只是表明一类实体其数据属性的“模式”,并不定义一个特定的数据实体,因此不要求分配存储单元。程序如果要实际使用结构类型所描述的数据信息,就必须定义结构变量。结构变量要占用存储单元,能存放如结构类型所描述的具体数据。对结构类型和结构变量,我们可以简单地理解为,结构类型是表示数据框架的描述文本,结构变量才能存放实际数据。2.结构变量7一、先定义结构类型,再声明结构变量形式:struct结构类型名结构变量名表;例如:利用前面已定义的结构类型student声明结构变量
5、代码:structstudentst1,st2;其中:student为结构类型名,st1和st2为结构变量。说明:结构变量声明后,每个结构变量的成员名称、成员个数和各成员的数据类型与结构类型定义中的成员名称、成员个数和各成员的数据类型相一致。结构变量的定义8结构变量内存分配单元变量名numbernamesexbirthdayaddressdaymonthyearst110001ZhangpingM2011198515NanjingRdst210002LiyingF08041986100BeijinRd9二、在定义结构类型的同时声明结构变量一般形式:struct结构类型名{
6、成员说明表}结构变量表;结构变量的定义例如:structstuSType{intnumber;/*学号*/charname[20];/*姓名*/intscore;/*成绩*/}stuS;结构变量10在定义结构变量的同时给它赋初值,称为结构变量的初始化。结构变量初始化时,要按结构类型定义中成员的顺序逐一给出各成员的初值。例如:structpoint/*说明绘图程序的坐标类型*/{intx;inty;}p1={20,50},p2;/*p1的x值为20,p1的y值为50*/说明:也可以在定义结构类型与声明结构变量分开的情况下,在声明结构变量时进行初始化。例如:structpoi
7、ntp3={10,40},p4={20,50};结构变量初始化11要注意结构类型名和结构变量名的区别。不能对结构类型名进行赋值、存取或运算,因为类型不占用存储空间;而结构变量会占用存储空间,定义时可以赋初值,定义后可引用。结构变量初始化的时间。静态的和全局的结构变量初始化在程序执行之前完成,静态的结构变量未指定初值时,值自动置0。局部结构变量初始化是程序控制每次进入它所属辖域时创建并初始化,未指定初值的局部结构变量其初值是不确定的。结构变量初始化说明12可以定义指向结构的指针变量(结构指针变量简称结构指针)。例如:struct
此文档下载收益归作者所有