ch08 结构.ppt
《ch08 结构.ppt》由会员分享,可在线阅读,更多相关《ch08 结构.ppt(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第8章 结构2023/1/27目录8.1 结构类型结构类型8.2 结构数组结构数组8.3 结构与函数结构与函数8.4 结构指针结构指针8.5 联合联合8.6 使用使用typedef8.7 简单链表简单链表2C+实用教程8.1 结构类型结构类型是从结构类型是从C语言继承下来的一种构造数语言继承下来的一种构造数据类型,它是由多种类型的数据(变量)据类型,它是由多种类型的数据(变量)组成的整体。组成的整体。组成结构类型的各个分量称为结构的数据组成结构类型的各个分量称为结构的数据成员成员(简称成员,或称成员变量)。(简称成员,或称成员变量)。3C+实用教程8.1.1 结构类型声明定义结构类型定义结构类
2、型 struct 结构类型名结构类型名;.;struct STUDENTintno;floatscore3;floatedit3;floattotal,ave;floatalledit;4C+实用教程说明:结构类型名应是一个合法有效的标识符,结构类型名应是一个合法有效的标识符,若该结构类型变量以后不再定义,结构类若该结构类型变量以后不再定义,结构类型名可省略。型名可省略。结构类型名是区分不同类型的标识。结构类型名是区分不同类型的标识。结构类型名通常用大写字母表示,以便与结构类型名通常用大写字母表示,以便与其他类型名区别。其他类型名区别。结构类型成员还可以是另一个已定义的结结构类型成员还可以是另
3、一个已定义的结构类型。构类型。struct POINTintx,y;struct RECTPOINT ptLeftTop;int nWidth;int nHeight;5C+实用教程8.1.2 定义结构类型变量结构类型变量的定义结构类型变量的定义声明之后定义方式声明之后定义方式声明之时定义方式声明之时定义方式直接(一次性)定义方式直接(一次性)定义方式结构类型变量的初始化结构类型变量的初始化在定义的结构类型变量后面加上在定义的结构类型变量后面加上“=初值列表初值列表;”可适当增加花括号,增加可读性。可适当增加花括号,增加可读性。struct ,;struct STUDENTintno;floa
4、tscore3;floatedit3;floattotal,ave;floatalledit;struct STUDENT stu1,stu2;struct STUDENTintno;floatscore3;floatedit3;floattotal,ave;floatalledit;stu1,stu2;struct intno;floatscore3;floatedit3;floattotal,ave;floatalledit;stu1,stu2;STUDENT stu1=1001,90,95,75,3,2,2;STUDENT stu1=1001,90,95,75,3,2,2;6C+实用教程
5、8.1.3 结构类型变量的引用格式格式规则规则只能引用结构类型变量中的成员变量。只能引用结构类型变量中的成员变量。若成员本身又是一个结构类型变量,引用时需若成员本身又是一个结构类型变量,引用时需要用多个成员运算符一级一级地找到最低一级要用多个成员运算符一级一级地找到最低一级的成员。的成员。多数情况下,结构类型相同的变量之间可以直多数情况下,结构类型相同的变量之间可以直接赋值,这种赋值等效于各个成员的依次赋值。接赋值,这种赋值等效于各个成员的依次赋值。.“.”是成员运算符,它的优是成员运算符,它的优先级仅次于域运算符先级仅次于域运算符“:”struct POINTintx,y;spot=20,3
6、0;coutspot.xspot.y;struct RECTPOINT ptLeftTop;POINT ptRightDown;rc=10,20,40,50;coutrc.ptLeftTop.xrc.ptLeftTop.y;POINT pt1=10,20;POINT pt2=pt1;coutpt2.xtpt2.y;7C+实用教程第8章 结构8.1 结构类型结构类型8.2 结构数组结构数组8.3 结构与函数结构与函数8.4 结构指针结构指针8.5 联合联合8.6 使用使用typedef8.7 简单链表简单链表8C+实用教程8.2 结构数组由结构类型的元素组成的数组称为由结构类型的元素组成的数组称
7、为结构数结构数组组。1.结构数组的定义结构数组的定义定义结构数组只要在定义结构变量的基础上增定义结构数组只要在定义结构变量的基础上增加维数说明即可。加维数说明即可。2.结构数组的初始化结构数组的初始化其方法与数组相同。但要注意,由于结构类型其方法与数组相同。但要注意,由于结构类型声明的是一条记录信息,一维结构数组初始化声明的是一条记录信息,一维结构数组初始化的形式应与二维普通数组相同。的形式应与二维普通数组相同。3.结构数组元素的引用结构数组元素的引用 struct POINTint x,y;POINT pt110,pt21020;.9C+实用教程例例Ex_StructStu 用结构数组输出平
8、用结构数组输出平均成绩最高的记录。均成绩最高的记录。10C+实用教程例:1.struct STUDENT 2.3.int no;/学号学号4.float score3;/三门课程成绩三门课程成绩5.float edit3;/三门课程的学分三门课程的学分6.float total,ave;/总成绩和平均成绩总成绩和平均成绩7.float alledit;/总学分总学分8.;9.STUDENT stu3=1001,90,95,75,3,2,2,10.1002,80,90,78,3,2,2,11.1003,75,80,72,3,2,2;11C+实用教程8.1 结构类型结构类型8.2 结构数组结构数组
9、8.3 结构与函数结构与函数8.4 结构指针结构指针8.5 联合联合8.6 使用使用typedef8.7 简单链表简单链表12C+实用教程8.3 结构与函数结构即可以作为函数的形参和实参,也可结构即可以作为函数的形参和实参,也可以作为函数的返回值。以作为函数的返回值。8.3.1 传递结构参数传递结构参数当结构类型变量作为函数的参数时,它与普通当结构类型变量作为函数的参数时,它与普通变量一样,由于结构类型变量不是地址,因此变量一样,由于结构类型变量不是地址,因此这种传递是这种传递是值传递值传递方式,整个结构都将被复制方式,整个结构都将被复制到形参中。到形参中。若函数传递的是结构数组,由于结构数组
10、名是若函数传递的是结构数组,由于结构数组名是指针常量,因而是指针常量,因而是地址传递地址传递方式,函数中对形方式,函数中对形参内容的改变必将影响实参。参内容的改变必将影响实参。13C+实用教程例Ex_StructValue 传递结构参数示例1.#include 2.using namespace std;3.struct PERSON 4.5.int age;6.float weight;7.char name25;8.;9.void print(PERSON one);10.int main()11.12.PERSON all=20,60,Zhang,28,50,Fang,13.33,78,
11、Ding,19,65,Chen;14.int n=sizeof(all)/sizeof(PERSON);/计算元素个数计算元素个数15.for(int i=0;in;i+)print(alli);16.return 0;17.void print(PERSON one)coutone.name t one.aget one.weight endl;14C+实用教程例Ex_StructArr 传递结构数组示例1.void sort(PERSON all,int n)2./用选择法按姓名从小到大排序用选择法按姓名从小到大排序3.intpos;4.PERSON min;5.for(int i=0;i
12、n-1;i+)6.7.min=alli;pos=i;8.for(j=i+1;jn;j+)9.if(strcmp(allj.name,min.name)0)10.min=allj;pos=j;11.allpos=alli;alli=min;12.13.15C+实用教程8.3 结构与函数结构即可以作为函数的形参和实参,也可结构即可以作为函数的形参和实参,也可以作为函数的返回值。以作为函数的返回值。8.3.2 返回结构返回结构16C+实用教程例Ex_StructRes 返回结构示例1.#include 2.using namespace std;3.struct PERSON 4.5.int age
13、;6.float weight;7.char name25;8.;9.void print(PERSON one);10.PERSON input(void);11.int main()12.13.PERSON all4;int i;14.for(i=0;i4;i+)alli=input();15.for(i=0;i4;i+)print(alli);16.return 0;17.PERSON input(void)PERSON temp;couttemp.name temp.age temp.weight;return temp;17C+实用教程8.1 结构类型结构类型8.2 结构数组结构数组
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ch08 结构
限制150内