欢迎来到163文库! | 帮助中心 精品课件PPT、教案、教学设计、试题试卷、教学素材分享与下载!
163文库
全部分类
  • 办公、行业>
  • 幼教>
  • 小学>
  • 初中>
  • 高中>
  • 中职>
  • 大学>
  • 各类题库>
  • ImageVerifierCode 换一换
    首页 163文库 > 资源分类 > PPTX文档下载
    分享到微信 分享到微博 分享到QQ空间

    《高级语言程序设计》课件第8章自定义数据类型.pptx

    • 文档编号:7650683       资源大小:171.77KB        全文页数:18页
    • 资源格式: PPTX        下载积分:15文币     交易提醒:下载本文档,15文币将自动转入上传用户(momomo)的账号。
    微信登录下载
    快捷注册下载 游客一键下载
    账号登录下载
    二维码
    微信扫一扫登录
    下载资源需要15文币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    优惠套餐(点此详情)
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、试题类文档,标题没说有答案的,则无答案。带答案试题资料的主观题可能无答案。PPT文档的音视频可能无法播放。请谨慎下单,否则不予退换。
    3、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者搜狗浏览器、谷歌浏览器下载即可。。

    《高级语言程序设计》课件第8章自定义数据类型.pptx

    1、第8章 自定义数据类型8.1 结构体类型8.2 共用体类型8.3 枚举类型8.4 用typedef声明新类型名第8章 自定义数据类型8.1 结构体类型第8章 自定义数据类型使用基本数据类型定义的变量,相互独立、缺乏联系,因此,C语言提供了一个由基本数据类型组成的构造类型数组。使用数组定义变量,以数据集的形式将同一类型的若干数据有序地组织在一起,如全班学生的学号或全班学生的成绩等。但在某些情况下,需要将不同类型的数据组合成一个有机的整体,如将学号、姓名、年龄、成绩等各项属性组织在一起,用来表示某个特定的学生;由于各项属性属于不同的数据类型,显然就不能通过定义数组来表示该数据了。C语言允许用户建立

    2、由不同数据类型组成的构造类型,这种数据类型被称为结构体类型。8.1.1 结构体类型的声明结构体类型声明的一般形式为struct是声明结构体类型时必须使用的关键字,它向编译系统说明当前的自定义类型为结构体类型;Student是由用户指定的结构体名,又称结构体标记,习惯上,将首字母写为大写形式;struct Student为当前创建的结构体类型的类型名,和标准数据类型名(如int、char、float等)具有相同的作用,都可以用来定义变量、数组等;成员列表又称“域表”,由一对花括号括起,列表中的每个成员都是结构体中的一个域,可以被声明为已知的任何数据类型,声明成员的方法与定义变量相同。无论是声明成

    3、员的数据类型还是声明特定的结构体类型,最后都要以“;”标识语句的结束。第8章 自定义数据类型使用关键字struct可以创建各种特定的结构体类型,例如,除了上面的struct Student,还可以创建struct Teacher、struct Classroom等,每一种结构体类型又可以包含各自不同的成员。成员可以被声明为已知的任何数据类型,包括C语言提供的标准数据类型和已经声明的自定义数据类型。可以将struct Student类型中的成员float型变量score改为struct Course类型变量score,用来记录各科成绩。但必须先声明struct Course类型,再在声明stru

    4、ct Student类型时使用struct Course类型定义成员。第8章 自定义数据类型8.1.2 使用结构体变量声明一个结构体类型,只是创建了一种数据类型,系统不会为类型分配存储单元。为了能够在程序中使用结构体类型的数据,需要为该结构体类型定义实体,如定义该结构体类型的变量,在变量的存储单元中存取数据。使用结构体类型定义变量,可以采取以下三种方式。(1)先声明结构体类型,再定义变量:先声明类型,再定义变量,使用相对灵活,是最常用的方式。(2)声明结构体类型的同时定义变量:在声明类型的同时定义变量与上一种方式作用相同,此种方式书写简单,但不如上一种方式结构清晰。(3)不指定结构体类型名称而

    5、直接定义结构体类型变量:第8章 自定义数据类型第三种方式声明了一个无结构体名的结构体类型,因此在声明完类型后,将没有一个可用的类型名去定义变量,所以只能在声明类型的同时定义变量。更为重要的是,自此以后只有stu1和stu2是同类型的变量,即使再声明一个结构体类型,其数据结构与stu1所属类型的数据结构完全相同,也被认为是不同的数据类型。定义了结构体变量后,系统会为之分配存储单元,理论上其大小为各成员所占存储空间的总和,以变量stu1为例,其所占字节数为5+10+1+4+4=24字节。然而为了满足“成员对齐”的要求,系统可能会在成员之间插入填充字节,因此结构体变量的大小可能会大于各成员大小的总和

    6、。8.1.3 结构体变量的初始化和引用在定义结构体变量的同时可以对其初始化,初始化列表是由花括号括起来的常量集合,这些常量按类型的结构顺序依次赋值给变量中的各个成员,当然也可以采用逐一为成员赋值的形式。程序中对变量stu1采用初始化形式,对变量stu2通过逐一为成员赋值的形式建立数据。在定义完结构体变量之后,可以使用已有初始值的同类型结构体变量对其赋值,即是将stu1的各成员值依次拷贝给stu2对应的各成员。第8章 自定义数据类型结构体变量的成员引用的一般格式为其中,“.”是成员运算符,结合性为从左至右。由于“.”在所有运算符中优先级最高,因此程序将“结构体变量名.成员名”作为整体参与各种引用

    7、。8.1.4 使用结构体数组一个结构体变量可以存放一组不同类型的数据(如一个学生实体的各项属性)。如果需要表示若干学生的集合,则可以定义一个结构体数组。数组中的每个元素都是一个结构体变量,用于表示一名学生;每个变量的各个成员分别用于表示特定学生的各项属性。定义结构体数组的方法与定义结构体变量相似,只需要指明其为数组即可。(1)先声明结构体类型,再定义数组:第8章 自定义数据类型(2)声明结构体类型的同时定义数组:(3)不指定结构体类型名称而直接定义结构体类型数组:初始化结构体数组的方法与初始化基本类型数组相似,在一对花括号内依次对每个元素的各个成员赋值,成员数据之间用“,”隔开,每个元素也可以

    8、用花括号括起,使得结构清晰。引用结构体数组元素成员的方法与引用结构体变量成员的相似,并且同样只能针对最低一级的成员进行引用。第8章 自定义数据类型8.2 共用体类型第8章 自定义数据类型 在程序设计中,通常定义某类型变量用于存取与其类型相同的数据,如果使用变量存取与其类型不同的数据,则有可能丢失数据或出错。在某些情况下,一个变量可能需要根据不同的应用环境表示不同类型的数据。C语言允许使用共用体类型定义变量,实现在同一段内存单元中存放不同类型的数据,以解决上述问题。8.2.1 共用体类型的声明作为自定义数据类型,使用共用体类型定义变量前,需要先声明这一特定类型的数据结构。声明共用体类型的关键字是

    9、“union”,一般形式为8.2.2 共用体变量的定义使用共用体类型定义变量的方法与使用结构体类型定义变量的相似,有如下三种方式。(1)先声明共用体类型,再定义变量:第8章 自定义数据类型(2)声明共用体类型的同时定义变量:(3)不指定共用体类型名称而直接定义共用体类型变量:共用体变量将不同类型的成员存放到同一段内存单元中,这些成员在内存中所占的字节数不同,但都是从同一地址开始存放的,即&a=&a.s=&a.c=&a.f。因此,共用体变量的长度是占用内存单元最多的成员的长度。第8章 自定义数据类型8.2.3 共用体变量的初始化和引用共用体变量的所有成员共用同一段内存单元,从同一地址开始存取数据

    10、。显然,新存入的成员数据将会覆盖掉之前存放在内存单元中的成员数据,即在任何情况下,共用体变量的所有成员中只有其中的一个(即最后存入的)成员有效。(1)共用体变量初始化:C语言允许以初始化的形式为共用体变量的第一个成员指定初始值。共用体变量的所有成员共用同一段内存单元,在任何情况下,只有其中的一个成员有效,因此无法通过初始化同时为共用体变量的所有成员指定初始值。(2)共用体变量的引用。C程序不允许直接引用共用体变量,而只能对共用体变量中的某个成员进行引用。第8章 自定义数据类型8.3 枚举类型第8章 自定义数据类型所谓枚举,就是将变量的可能取值一一列举出来,以后对于变量的引用,只限于列举出来的取

    11、值。8.3.1 枚举类型的声明定义一个枚举类型变量前,需要先声明这个特定枚举类型的结构。声明枚举类型的关键字是“enum”,一般形式为结构体类型和共用体类型的成员是变量,需要在类型结构中用语句声明,以“;”标识语句结束;枚举元素作为符号常量,在类型声明中一一列举,元素之间用“,”间隔。结构体变量和共用体变量可以在类型声明之外对自己的成员赋值;枚举元素不是变量,不能在类型声明之外对它们重新赋值。8.3.2 枚举变量的定义定义枚举变量的方法与定义结构体变量和共用体变量相似,有如下三种方式。(1)先声明枚举类型,再定义变量:第8章 自定义数据类型(2)声明枚举类型的同时定义变量:(3)不指定枚举类型

    12、名称而直接定义枚举类型变量:枚举变量的取值只能从所有枚举元素中选择其一,而每个枚举元素代表一个整数常量,所以C语言中枚举变量的大小等于sizeof(int),即4字节长度。第8章 自定义数据类型8.3.3 枚举变量的初始化和引用可以在定义枚举变量的同时对其初始化,也可以在定义之后对变量赋值并引用。枚举变量的引用特点就是能令使用者见名知意,并且将取值限制在规定范围内,因此对枚举变量的赋值,建议使用枚举元素。枚举变量和枚举元素都可以进行整型参与的各项运算,如数值运算、比较运算和关系运算等,但一定注意不要因为参与运算而使枚举变量获得一个不在枚举元素列表中的值。第8章 自定义数据类型8.4 用type

    13、def声明新类型名第8章 自定义数据类型C语言允许使用关键字typedef指定新的类型名来代替已有的类型名。使用新的类型名定义变量,主要出于以下两点考虑。(1)用更具意义的名称定义变量,可以做到见名知意。为int类型指定别名Count,并使用Count定义整型变量i,可以突出变量i在程序中作为计数器使用的特征。(2)用更简单的名称定义变量,可以使书写更为简洁。使用一个新类型名的步骤为:(1)按定义变量的方法写出定义体(如“int a;”);(2)将变量名替换为新类型名(如“int Count;”);(3)在最前面添加关键字typedef(如“typedef int Count;”);(4)使用新类型名定义变量(如“Count i;”)。需要注意的是,typedef只用于声明新类型名,不能用来定义变量。使用typedef只是为已经存在的类型起一个别名,并没有创造新的数据类型。习惯上,把使用typedef声明的新类型名的第一个字母用大写表示,以便与标准类型相区别。


    注意事项

    本文(《高级语言程序设计》课件第8章自定义数据类型.pptx)为本站会员(momomo)主动上传,其收益全归该用户,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!




    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库