C及C++程序设计 第3版 教学课件 张富 第11章-用户定义数据类型.ppt

C及C++程序设计 第3版 教学课件 张富 第11章-用户定义数据类型.ppt

ID:50043088

大小:343.00 KB

页数:110页

时间:2020-03-08

C及C++程序设计 第3版 教学课件 张富 第11章-用户定义数据类型.ppt_第1页
C及C++程序设计 第3版 教学课件 张富 第11章-用户定义数据类型.ppt_第2页
C及C++程序设计 第3版 教学课件 张富 第11章-用户定义数据类型.ppt_第3页
C及C++程序设计 第3版 教学课件 张富 第11章-用户定义数据类型.ppt_第4页
C及C++程序设计 第3版 教学课件 张富 第11章-用户定义数据类型.ppt_第5页
资源描述:

《C及C++程序设计 第3版 教学课件 张富 第11章-用户定义数据类型.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第11章用户定义数据类型构造满足自己需要的其他数据类型。这是用户在程序中自己定义的一种数据类型,称为用户自定义数据类型。在已定义的数据类型基础上,用户可以构造下列四种数据类型:结构型(structure);位域型(bit_field);联合型(union);枚举型(enumeration)。这些数据类型必须用户自己先定义,然后才能用它们来定义相应数据类型的变量、数组、指针等。除此以外,用户还可以用关键字typedef为已建立的数据类型定义新的类型名字。结构型(Structure)11.1结构型数组11.2指向结构型数据的指针11.3位域型(Bit_Fields)11.4

2、联合型(Unions)11.5枚举型(Enumerations)11.6用户自定义数据类型名称11.7小结11.811.1结构型(Structure)11.1.1结构型的定义结构是由一些基本数据类型和其他已定义的数据类型组成的。它有一个用户为它起的名字,称为结构名。结构型中的各成分,在逻辑上,一般都有一定的内在联系。组成结构型的各成分,称作结构的元素、成员区域。结构数据类型的定义,是通过结构定义语句完成的。其定义的关键字是struct。定义结构的一般形式为:struct结构型名{数据类型1成员名1;数据类型2成员名2;…数据类型n成员名n;};其中结构型名是用户为结构型

3、起的名字,可以是任何合法的标识符。数据类型1,数据类型2等可以是任何已经定义的基本数据类型,包括结构型。成员名1,成员名2等是用户为结构成员起的名字,可以是任何合法的标识符。因为结构型是一种数据类型,其中成员也不是变量,系统不会为所定义的结构分配内存空间。当结构成员的数据类型为结构类型时,称为结构的嵌套。11.1.2结构型变量的定义有三种定义结构变量的方法。第一种定义结构型变量的方法是:先定义结构类型,后定义结构型变量。这种定义方法与一般数据类型变量的定义的方法一样。定义完结构类型之后,再定义结构型变量。第二种定义结构型变量的方法是:在定义结构的同时定义结构型变量。这种

4、定义方法是将要定义为该结构类型的变量直接写在该结构定义的右花括号之后,最后再以分号结束语句。第三种定义结构型变量的方法是:定义无名称结构型的同时定义该结构型变量。以上前两种定义结构类型变量的方法是完全等效的。在使用了第二定义方法之后,仍然可以使用第一种方法继续定义该结构型的其他变量。第三种方法中因省略了结构型名,结构型定义后,将无法再使用第一种方法继续定义该结构型的变量。结构型变量被定义后,系统将按结构类型定义中成员的说明顺序,为它们在内存分配存储空间。例如,有下面的定义的结构型ex和结构型变量ex1:structex{inta;floatbcharc;chard[5]

5、;}ex1;图11-1结构型变量内存分配示意图结构成员名可以与程序中的变量同名,也可以与结构类型名相同。结构型变量名可以与结构类型名相同,但不能与程序中的变量名相同。11.1.3结构型变量的初始化结构型变量初始化的方法,与结构型变量定义采用的形式相对应。对于第一种定义结构变量的方法,以结构comm为例,可以这样初始化:structcomm/*定义结构型*/{charname[30];charaddr[80];chartele[10];unsignedlongintzip;};…structcomma={"zhangXu","Beijing","62018882",100

6、000},b={"LiLin","nanjing","37214985",503762};对于第二种定义结构变量的方法,仍以结构comm为例,可以这样初始化:structcomm{charname[30];charaddr[80];chartele[10];unsignedlongintzip;}a={"zhangXu","Beijing","62018882",100000},b={"LiLin","nanjing","37214985",503762};对于第三种定义结构变量的方法,可以像前面一样初始化,只是没有结构名而已。11.1.4结构型变量成员的引用对结构型变

7、量,只能使用其中的成员,而不是结构变量本身。结构型变量成员的使用如同一般变量。也可以使用结构型变量成员的地址以及结构型变量的地址。1.结构型变量成员的引用方法引用结构型成员的格式如下:结构型变量名.成员名其中“.”是成员选择符(或称点操作符或成员运算符)。这个运算符的优先级最高,结合性是自左向右。结构型变量也具有存储类别属性,它可以是外部、自动或静态存储类型。但不能是寄存器类型。相同类型的结构型变量可以互相整体赋值。如果一个结构型变量的成员数据类型是另一个结构型,则其成员的引用要用多个成员选择符,逐层地引用到最低一级的成员。引用格式为:外

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

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

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