C语言程序设计案例教程 教学课件 作者 杨旭 第8章.ppt

C语言程序设计案例教程 教学课件 作者 杨旭 第8章.ppt

ID:50321008

大小:403.00 KB

页数:24页

时间:2020-03-08

C语言程序设计案例教程 教学课件 作者 杨旭 第8章.ppt_第1页
C语言程序设计案例教程 教学课件 作者 杨旭 第8章.ppt_第2页
C语言程序设计案例教程 教学课件 作者 杨旭 第8章.ppt_第3页
C语言程序设计案例教程 教学课件 作者 杨旭 第8章.ppt_第4页
C语言程序设计案例教程 教学课件 作者 杨旭 第8章.ppt_第5页
资源描述:

《C语言程序设计案例教程 教学课件 作者 杨旭 第8章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第8章复杂数据类型本章要点8.1结 构 体8.2共 用 体8.3位 运 算8.4枚  举8.5程序实例习题88.1.1结构体的定义1.结构体定义结构体是一种复合的数据类型,它允许用其他数据类型构成一个结构类型,而一个结构类型变量内的所有数据可以作为一个整体进行处理。同数组类似,一个结构体也是若干数据项的集合,但与数组不同,数组中的所有元素都只能是同一类型的,而结构体中的数据项可以是不同的类型。结构体的定义形式如下:struct结构体标识名{类型成员变量名1;类型成员变量名2;类型成员变量名3;…};8.1结 构 体其中,关键字struct用于定义结构

2、体类型,结构体成员的类型可以是普通的数据类型(如int,char),也可以是数组、指针或已定义的结构体等任意的数据类型,在定义的结尾以分号表示结束。有了结构体,前面的记录就可以用结构体方法,按如下所示进行定义:structstudent/*定义学生结构体类型*/{charname[8];/*姓名*/intchinese;/*语文*/intmath;/*数学*/inteng;/*英语*/intaver;/*平均成绩*/intcount;/*总成绩*/};structgz/*定义职工工资结构体类型*/{intnum;/*职工编号*/charname[8]

3、;/*姓名*/intjbgz;/*基本工资*/8.1结 构 体intjj;/*奖金*/inttc;/*提成*/intsfgz;/*实发工资*/};这里,我们定义了一个名为student的学生成绩结构体类型和一个名为gz的职工工资结构体类型,在结构体中包括字符数组name和整型变量num、count等成员变量。这样,一个结构体变量就可以包含前面所述记录的所有数据。这样的一个结构体变量又称为结构体对象,其中的name、num和count等变量称为结构体对象的成员变量。需要注意的是,结构体类型的定义并没有在内存中为其分配空间,而是仅仅定义了数据的组织形式,

4、创立了一种数据类型,是对数据的一种抽象。只有在定义了结构体类型的变量后,才会在内存中为该变量分配空间。在为结构体变量分配存储空间时,每个结构体变量所占存储空间大小为其成员所占存储空间的总和。结构体在定义后,就可以同其他数据类型一样,来定义该类型的结构体变量。8.1结 构 体2.结构体变量的初始化结构体类型变量同数组一样,也可以在定义时对其进行初始化。3.结构体变量的存储形式结构体变量作为一种变量,在定义时也会在内存中对其进行存储空间的分配,在为结构体变量分配内存空间时,形式与数组相似,是按结构体成员定义时的先后顺序连续分配的。例如在程序中定义了如下的

5、结构体变量s:structstudent/*定义学生结构体类型*/{charname[8];intchinese;intmath;inteng;intaver;intcount;}s;在TurboC中char型变量占一个字节,int型变量占两个字节,设结构体变量s的起始地址为1000,则s在内存中的存储形式如图8.1所示。8.1结 构 体8.1.2结构体变量的引用1.引用结构体变量“.”是结构体成员运算符,结构体通过成员运算符“.”引用结构体成员。当结构体成员是普通变量或数组时,使用这种方法引用之后可进行各种运算。2.引用结构体指针如果定义的是结构体

6、指针类型的变量,则可以通过“→”运算符引用。“→”是由减号和大于号组成,当变量为指向结构体类型的指针变量时,可以采用这种方式对结构体成员变量进行引用。3.嵌套结构体的引用如果成员本身又是一个结构体类型——即嵌套结构体的引用时,则用“·”或“→”一级一级地运算,直到最低一级的成员变量为止8.1结 构 体图8.1结构体的存储形式4.结构体的整体引用在程序中还可以使用结构体指针或结构体名来完成结构体变量的整体引用。8.1.3结构体数组一个结构体变量只能存储一条记录,对于多条相关记录,可以使用结构体数组的方式来完成。可以像定义普通数组一样定义结构体数组,数组

7、的每一个成员都是一个结构体。定义方法如下:structstudents[10];/*定义可存储10个学生记录的结构体数组*/structgzn[20];/*定义可存储20个工资记录的结构体数组*/与普通数组一样,也可以在定义时为结构体数组进行初始化,例如:structstudents[10]={{1001,"赵军",78,62,67,69,207},{1002,"王庆",87,73,86,82,246},{1003,"丁一",65,85,93,83,243}};结构体数组中成员的引用,与普通引用相同,例如:s[1].math=90;/*引用第1个学生

8、的数学成绩*/n[i].jj=100;/*引用第i个职工的奖金*/8.1结 构 体8.1.4自定义数据类型在

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。