c语言-第9章 用户自己建立数据类型

c语言-第9章 用户自己建立数据类型

ID:40136061

大小:1.45 MB

页数:143页

时间:2019-07-22

c语言-第9章 用户自己建立数据类型_第1页
c语言-第9章 用户自己建立数据类型_第2页
c语言-第9章 用户自己建立数据类型_第3页
c语言-第9章 用户自己建立数据类型_第4页
c语言-第9章 用户自己建立数据类型_第5页
资源描述:

《c语言-第9章 用户自己建立数据类型》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1第9章用户自己建立数据类型基本整型短整型长整形基本类型整型双长整型*字符型布尔型*单精度浮点型浮点型双精度浮点型数据类型复数浮点型枚举类型(§9)空类型指针类型(§8)数组类型(§6)派生类型 结构体类型(§9)共用体类型(§9)函数类型(§7)2C语言的数据类型算术类型纯量类型组合类型有*的是C99所增加的。(P43图3.4)3主要内容9.1定义和使用结构体变量9.2使用结构体数组9.3结构体指针9.4用指针处理链表9.5共用体类型9.6使用枚举类型9.7用typedef声明新类型名9.1定义和使用结构体

2、变量9.1.1自己建立结构体类型9.1.2定义结构体类型变量9.1.3结构体变量的初始化和引用45100101LiFunM1887.5BeijingNumnamesexagescoreaddr9.1.1自己建立结构体类型数组是同类型数据的集合。在实际应用中,有时需要将几个不同类型的数据组合成一个整体用于描述现实的某个事物(如:商品、学生、机票、借书登记等)。将它们定义成相互独立的简单变量,难以反映它们之间的内在联系。C语言允许用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体(structure)

3、。结构体类似于数据库语言中的“记录”。结构体类型示例例如,一个学生的学号、姓名、性别、年龄、成绩、家庭地址等项,是属于同一个学生的,因此组成一个组合数据,如student_1的变量,反映它们之间的内在联系6structStudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];};由程序设计者指定了一个结构体类型structStudent它包括num,name,sex,age,score,addr等不同类型的成员7定义结构体数据类型C中

4、不提供任何预定义的结构体数据类型。结构体数据类型的一般定义形式为:struct<结构体名> {<成员列表>};<结构体名>用作结构体类型标志,又称“结构体标记”(structuretag)。“struct<结构体名>”是一个结构体类型名,与系统提供的标准类型具有一样的地位和作用。各个成员都应该进行类型声明:<类型名><成员名>如:structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}定义结构体数据类型说明:(1)结构

5、体类型并非只有一种,而是可以设计出许多种结构体类型,例如structTeacherstructWorkerstructDate等结构体类型各自包含不同的成员定义结构体数据类型说明:(2)成员可以属于另一个结构体类型。structDate{intmonth;intday;intyear;};structStu{intnum;charname[20];charsex;intage;structDatebirthday;charaddr[30];};numnamesexagebirthdayaddrmonthday

6、year9.1.2定义结构体类型变量前面只是建立了一个结构体类型,它相当于一个模型,并没有定义变量,其中并无具体数据,系统对之也不分配存储单元。相当于设计好了图纸,但并未建成具体的房屋。为了能在程序中使用结构体类型的数据,应当定义结构体类型的变量,并在其中存放具体的数据。119.1.2定义结构体类型变量先声明结构体类型再定义变量名:struct<结构体名>{<成员列表>};struct<结构体名><结构体变量名表>;例1:structstudent{intnum;charname[20];charsex;in

7、tage;floatscore;charaddr[30];}structstudentstud1,stud2;stud2stud1100101ZhangXinM1990.5Shanghai100102WangLiF2098Beijing【注意】将一个变量定义为标准类型(基本数据类型)与定义为结构体类型不同之处在于后者不仅要求指定变量为结构体类型,而且要求指定为某一特定的结构体类型,因为可以定义出许许多多种具体的结构体类型。stud1(stud2)在内存中所占的字节数≥4+20+1+4+4+30=63129.1

8、.2定义结构体类型变量先声明结构体类型再定义变量名:struct<结构体名>{<成员列表>};struct<结构体名><结构体变量名表>;在声明类型的同时定义变量:struct<结构体名>{<成员列表>}<结构体变量名表>;不指定类型名而直接定义结构类型变量:struct{<成员列表>}<结构体变量名表>;例2:structstudent{intnum;charname[20];charsex;in

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

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

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