C语言程序设计课件第8章_第1页
C语言程序设计课件第8章_第2页
C语言程序设计课件第8章_第3页
C语言程序设计课件第8章_第4页
C语言程序设计课件第8章_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2020/7/17,1,高级语言计程仪编程,第8章结构,联合,列举,发表:计算机学院朱立华,2020/7/17,3,内容提要,本章中三种用户客制化类型:结构, 介绍哪种数据存储和处理所需的这种类型定义的形式,这种类型的变量在内存中占用的空间的形式及其网站数据库方式以结构类型为重点,使用这种类型的嵌套定义、结构中的同名问题结构排列和结构指针(处理批量记录) 在诸如结构类型函数中使用的返还值的问题结构中经常使用的算法(例如排序)、2020/7/17,4,4、结构类型定义,为何需要结构类型:在某些情况下,需要定径套表示相同对象的相关信息。 例如,学生信息包括学生编号、姓名、性别、成绩等到目前为止所学

2、的标准类型和数组以及指针类型不能满足此请求结构类型的定义格式:结构结构类型名结构成员表列; 的双曲馀弦值。 此牛鼻子字是定义结构类型的开始标志,结构类型名称必须是用户定义的标识符。 一对大括号必须以分号结尾,表示结构类型中的每个成员。 成员列表格式:成员类型名称成员名称相同类型的成员名称包括一个成员类型名称、2020/7/17,5、结构类型定义、结构类型定义示例:结构int yr,表示日期; /年int mo; /月int da; /日; struct Student /表示学生信息的结构long unsigned id; /学号double grades; 成绩; int yr、mo、da;

3、 /年月日类型可以使用相同的类型识别符,并且,一旦定义了2020/7/17,6,6、结构变量、结构类型,结果结构类型名称就被用作结构类型名称,并且可以定义该类型的变量,方程(1)中的3 (2)定义结构类型时,在云同步中定义结构变量,不省略结构类型名,在结构类型定义结束后的右大括号后,不省略分号前的示例:struct Date /结构类型名int yr,mo,da。 /年、月、日dt; /结构变量dt,(3),结构类型名称省略,结构类型名称,2020/7/17,7,7,typedef定义结构类型别名,typedef定义结构类型别名,Date dt,便于定义结构类型变量; (2)定义结构类型时在云

4、同步中定义其别名,不省略结构类型名,在结构类型定义结束的右大括号后是分号之前的示例: typedef struct Date /结构类型名int yr,mo,da; /年、月、日Date; /定义结构类型别名Date,(3)、结构类型名省略、结构类型名、在预定义的类型struct Date中定义类型别名Date,直接将Date作为结构类型名来定义结构变量dt,2020/7/17,8,8的两种常用方法是: (1)将初始值括在大括号对中,并将每个成员的值列出的值可以比成员数少。 在差动奥尔特中,例如datedt1=2005、8、16 dated T2=2009,4; (2)两个类型匹配的结构变量可

5、以是另一个初始化示例: Date dt4,dt3=dt1; 结构变量定义后,可以代入满足以下要求: (1)两个类型一致的结构变量可以一方的代入另一方的代入(相当于:结构变量定义后,不能用各成员的值代入全部结构变量的3360 dated T2=2009,4 ) 例如: Date dt; dt=2005、8、16; x、2020/7/17,9、9、9、结构变量成员的网站数据库、结构变量占有存储器的方式:与数组非常类似,由于一个结构变量的各成员在存储器中依次占有与地址相邻的存储单元,所以一个结构变量所占的空间是其各成员所需要的引用结构变量的成员的方法:必须从结构变量名称开始,随后添加成员引用运算符“

6、.”,然后添加成员名称:例如,3360 dated t1=2005,8,相当于:dt1.yr=2005; dt1.mo=8; dt1.da=16;2020/7/17,10,结构变量成员访问,方案8.1结构变量成员引用示例在此示例中,前两种结构类型: struct Student /表示学生信息的结构long unsigned id; /学号float grades; 成绩; 结构日期/表示日期的结构int yr,mo,da;2020/7/17、11、结构指针、结构指针的概念:基本类型为结构类型的指针,只能得到基本类型一致的结构类型变量的地址的结构成员(2)结构指针-结构成员示例: Studen

7、t s; Student *ps=,其中Student是typedef中定义的结构类型别名,2020/7/17、12、结构数组、结构数组的概念:基本类型是结构类型的数组。 数组类型没有规定其基本类型必须是哪种类型的结构数组引用结构成员的三种方式: (1)结构数组名下标.结构成员(2)(* (结构数组名下标).结构成员(3) (结构数组名下标) -结构成员示例:Student sa3; sai.id /第一个学生的学号sai.grades /第一个学生的成绩,其中Student是在typedef中定义的结构类型别名,方式1,(*(saI).id ()例:studentsa3=1001、80、10

8、02、89、1003 结构阵列在存储器中的存储方法:包括:地址占用连续空间的定径套,其中阵列元素是相邻的,且元素的每一个成员都是相邻的,1001、80、1002、89、1003、90、sa0.id、sa0.grades、sa0画面输出(在VC中执行) 结构嵌套的概念:结构的成员可以是任何类型,当然也可以是结构的类型,结构的嵌套结构的嵌套的定义形式: (1)先被定义; 类型结构数据日期; 强迫长期未签名id; 双重格雷德; 日托; 入学日dt; 条纹条纹条纹条纹条纹; 方式1,方式2,2020/7/17,15,结构嵌套,项目群8.3 :结构嵌套定义一个学生结构,从牛鼻子板输入三个学生查询密码,输

9、出到画面。 主函数输入部主查询密码: (输出查询密码类似) int i; 史蒂文sa 3; 打印机(输入3记录: n ); for(i=0; i3; 输入i ) /人的学生的各信息scanf(%Lu%Lf,2020/7/17,16,构造型返还值和地址唤出,构造型作为返还值型在第6章的有返还值的函数唤出过程中可以拥有经过3次代入的知识, 结构型作为函数返回型而明确的一般占有空间大意味着临时变量的空间大,代入也需要花费时间,因此一般将返还值型变更为void型,追加结构型的指针型残奥仪表,通过间接参照修正对应的实际残奥仪表结构体变量的值以下动态演示显示两者差异和效率差异的本例再次显示指针的效率性,2020/7/17,17,结构应用例学生记录的排序,分析:组学生记录,首先定义一维排列,由于该排列的要素类型是结构类型, 本问题需要定义一维结构数组的排序,但是当元素相互交换时,作为结构变量出现的交换函数残奥参数的选择:是第6章的知识,本问题是一级指针是最有效的,指针的基类型是一维度数组的基类型模块的分割:是输入函数、顺序函数、函数、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论