电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

程序设计基础——C++ 教学课件 ppt 作者 刘玉英 第6讲 结构

43页
  • 卖家[上传人]:E****
  • 文档编号:89364271
  • 上传时间:2019-05-24
  • 文档格式:PPT
  • 文档大小:204KB
  • / 43 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第7章 结构及其它,7.1 结构的概念 7.2 结构、结构变量的定义 7.3 结构与体数组 7.4 结构与函数 7.7 其他构造类型,在实际的处理对象中,有许多信息是由多个不同类型的数据组合在一起进行描述,而且这些不同类型的数据是互相联系组成了一个有机的整体。此时,就要用到一种新的构造类型数据结构。结构的使用为处理复杂的数据结构(如动态数据结构等)提供了有效的手段,而且,它们为函数间传递不同类型的数据提供了方便。 同时也介绍在相同存储区域内存储不同数据类型的构造类型联合的相关概念。,7.1 结构的概念,结构是用户自定义的新数据类型,在结构体中可以包含若干个不同数据类型和不同意义的数据项,从而使这些数据项组合起来反映某一个信息。 例如,可以定义一个职工worker结构,在这个结构中包括职工编号、姓名、性别、年龄、工资、家庭住址、联系电话。这样就可以用一个结构数据类型的变量来存放某个职工的所有相关信息。并且,用户自定义的数据类型worker也可以与int、double等基本数据类型一样,用来作为定义其他变量的数据类型。,定义一个结构体类型的一般形式为:,struct 结构体名 数据类型 成

      2、员名1; 数据类型 成员名2; 数据类型 成员名n; ; 在大括号中的内容也称为“成员表列”。其中,每个成员名的命名规则与变量名相同;数据类型可以是基本变量类型和数组类型,也可以是指针变量类型,或者是一个结构体类型;用分号“;”作为结束符。整个结构的定义也用分号作为结束符,,例如:定义一个职工worker结构体如下: struct worker long number; char name20; char sex; /sex是成员名 int age; float salary; char address80; char phone20; ; /注意分号不要省略 int sex=10; /sex是变量名,结构体类型中的成员名可以与程序中的变量名相同,二者并不代表同一对象,编译程序可以自动对它们进行区分。 总结一下结构体类型的特点: (1)结构体类型是用户自行构造的。 (2)它由若干不同的基本数据类型的数据构成。 (3)它属于C+语言的一种数据类型,与整型、实型相当。因此,定义它时不分配空间,只有用它定义变量时才分配空间。,7.1.1 结构体类型变量的定义方法,结构体只是用户自定义的一种数

      3、据类型,因此要通过定义结构体类型的变量来使用这种类型。通常有三种形式来定义一个结构体类型变量。 1. 先定义结构体类型再定义变量名 一般语法格式如下: struct 结构体名 成员表列; ; struct 结构体名 变量名;,例如,定义几个学生变量: struct student long number; char name20; char sex; int age; float score; char address80; char phone20; ; struct student stu1, stu2;,2. 在定义类型的同时定义变量,如果程序规模比较大,往往将对结构体类型的定义集中写入到一个头文件(以.h为后缀)中。哪个源文件需用到此结构体类型则可用#include命令将该文件包含到本文件中。这样做便于程序的修改和使用。 一般形式为: struct 结构体名 成员表列; 变量名;,struct student long number; char name20; char sex; int age; float score; char address80; char phone2

      4、0; stu1, stu2; 此例与前例作用相同,都定义了两个变量stu1, stu2, 它们是结构体类型struct student 。,3. 直接定义结构类型变量,其一般形式为: struct /没有结构名 成员表列 变量名;,struct long number; char name20; char sex; int age; float score; char address80; char phone20; stu1, stu2;,一个结构变量占用内存的实际大小,也可以利用sizeof运算求出。它的运算表达式为: sizeof(运算量) /求出给定的运算量占用内存空间的字节数 其中运算量可以是变量、数组或结构变量,也可以是数据类型的名称。 例如: sizeof(struct student) sizeof(stu1),7.1.2 结构变量的访问,1. 结构变量的使用形式 在定义了结构变量以后,就可以使用这个变量。结构变量是不同数据类型的若干数据的集合体。在程序中使用结构变量时,一般情况下不能把它作为一个整体参加数据处理,而参加各种运算和操作的是结构变量的各个成员项数据。 结构

      5、变量的成员用以下一般形式表示: 结构变量名.成员名 例如,上节给出的结构体变量stu1具有下列成员: stu1.number;stu1.name;stu1.sex;,结构变量的赋值与引用,在定义了结构体变量后,就可以用不同的赋值方法对结构体变量的每个成员赋值。例如: strcpy(stu1.name,”Zhang San”); stu1.age=26; strcpy(stu1.phone,”1234567”); stu1.sex=m; 除此之外,还可以引用结构体变量成员的地址以及成员中的元素。 例如:引用结构体变量成员的首地址& stu1 1.name; 引用结构体变量成员的第二个字符stu1.name1; 引用结构体变量的首地址&stu1。,在使用结构体类型变量时需要注意:,(1)不能将一个结构体类型变量作为一个整体加以引用,而只能对结构体类型变量中的各个成员分别引用。 (2)如果成员本身又属一个结构体类型,则要用若干个成员运算符,一级一级地找到最低的一级成员。只能对最低级的成员进行赋值或存取以及运算。 (3)对成员变量可以像普通变量一样进行各种运算。 (4)在数组中,数组是不能彼此

      6、赋值的,而结构体类型变量可以相互赋值。 在C+程序中,同一结构体类型的结构体变量之间允许相互赋值,而不同结构体类型的结构体变量之间不允许相互赋值,即使两者包含有同样的成员。,7.1.3 结构变量的初始化,与其他类型变量一样,也可以给结构的每个成员赋初值,这称为结构的初始化。 有两种初始化形式,一种是在定义结构变量时进行初始化,一般语法格式如下: struct 结构体名 变量名=初始数据表; 另一种是在定义结构类型时进行结构变量的初始化。一般语法格式如下: struct 结构体名 成员表列; 变量名=初始数据表;,案例7.1 分析下列程序的输出结果,注意结构变量的运算。 #include struct student /定义关于学生的结构 char*name; long stu_no; float math; float English; ; void main( ) static struct student s1=“Ma jing“, 99012, 89.0, 78.5, s2=“Lu ping“, 99023, 90.0, 85.5; /定义两个结构变量并初始化 float m1,

      7、 m2; m1=(s1.math+s1.English)/2; m2=(s2.math+s2.English)/2; couts1.nametm1endl; couts2.nametm2endl; ,7.2 结构数组,具有相同结构类型的结构变量也可以组成数组,称它们为结构数组。结构数组的每一个数组元素都是结构类型的数据,它们都分别包括各个成员项。 7.2.1 结构数组的定义 定义结构数组的方法和定义结构变量的方法相仿,只需说明其为数组即可。可以采用三种方法。,1. 先定义结构类型,再用它定义结构数组。 结构数组的定义形式如下: struct 结构体名 成员表列; ; struct 结构体名,例如: struct student char name20; char sex; int age; char addr20; ; struct student stu3;,2. 在定义结构体类型同时定义结构数组。 结构数组的定义形式如下: struct 结构名 成员表列; 数组名元素个数;,例如: struct student char name20; char sex; int age; cha

      8、r addr20; stu3;,3. 直接定义结构体数组 结构数组的定义形式如下: struct /没有结构名 成员表列; 数组名元素个数;,例如: struct char name20; char sex; int age; char addr20; stu3;,结构数组名表示该结构数组的存储首地址。 结构数组适合于处理由若干具有相同关系的数据组成的数据集合体。用结构数组处理数据时可以使用循环,从而使程序十分简炼。,7.2.2 结构数组的初始化,结构数组在定义的同时也可以进行初始化,并且与结构变量的初始化规定相同,只能对全局的或静态存储类别的结构数组初始化。 结构数组初始化的一般形式是: struct 结构名 成员表列; ; struct 结构名 数组名元素个数=初始数据表;,或者: struct 结构体名 成员表列; 数组名元素个数=初始数据表; 在对结构数组进行初始化时,方括号 中元素个数可以不指定。编译时,系统会根据给出初始的结构常量的个数来确定数组元素的个数。 由于结构变量是由若干不同类型的数据组成,而结构数组又是由若干结构变量组成。所以要特别注意包围在大括号中的初始数据的顺

      9、序,以及它们与各个成员项间的对应关系。,7.2.3 结构数组的使用,一个结构数组的元素相当于一个结构变量,因此前面介绍的有关结构变量的规则也适应于结构数组元素。以上面定义的结构数组stu3为例说明对结构数组的引用: (1)引用某一元素中的成员。 若要引用数组第二个元素的name成员,则可写为: stu1.name 若数组已如前所示进行了初始化,则stu1.name的值为“Liu Yong”。,(2)可以将一个结构数组元素值赋给同一结构类型的数组中的另一个元素,或赋给同一类型的变量。如: struct student stu3,student1; 现在定义了一个结构类型的数组,它有3个元素,又定义了一个结构类型变量student1,则下面的赋值是合法的。 student1=stu0; stu0=stu1; stu1=student1;,(3)不能把结构数组元素作为一个整体直接进行输入输出。如: coutstu0; 都是错误的。 只能以单个成员为对象进行输入输出,如: cinstu0.name; cinstu1.num; coutstu0.name; coutstu1.num;,案例7.2 在关于学生的结构数组中存放5名学生的某课程的成绩,要求查找并输出最高分和最低分的学生姓名和成绩。 #include struct student /定义关于学生的结构 char *name; int score; stu5=“Li Ping“,99,“Li Ling“,89,“Wan Hua“, 78,“Li Hong“, 87,“Song Hai“,85; void main( ) in

      《程序设计基础——C++ 教学课件 ppt 作者 刘玉英 第6讲 结构》由会员E****分享,可在线阅读,更多相关《程序设计基础——C++ 教学课件 ppt 作者 刘玉英 第6讲 结构》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.