C 程序设计基础 第5章 自定义数据类型

C 程序设计基础 第5章 自定义数据类型

ID:40238030

大小:874.50 KB

页数:83页

时间:2019-07-28

C 程序设计基础 第5章 自定义数据类型_第1页
C 程序设计基础 第5章 自定义数据类型_第2页
C 程序设计基础 第5章 自定义数据类型_第3页
C 程序设计基础 第5章 自定义数据类型_第4页
C 程序设计基础 第5章 自定义数据类型_第5页
资源描述:

《C 程序设计基础 第5章 自定义数据类型》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第5章自定义数据类型结构体类型共用体类型枚举类型类型定义3结构体类型结构体的概念结构体类型的定义结构体变量的定义结构体变量的初始化和引用结构体数组结构体与函数链表5.1.1结构体的概念一个学生的信息有学号、姓名、性别、年龄、住址、成绩等。一个教师的信息有职工编号、姓名、性别、年龄、职称、工资等。如何描述这些类型不同的相关数据?结构体——一种构造类型数据结构体由若干不同类型的数据项组成,构成结构体的各个数据项称为结构体成员。struct结构体名{数据类型   成员名1;数据类型   成员名2;:数据类型   成员名n;};在大括号中的内容也称为“成员说明列表”。在结构体

2、中包含若干个不同数据类型的结构体成员,从而使这些数据项组合起来反映某一个信息。struct结构体类型名{数据类型   成员名1;数据类型   成员名2;:数据类型   成员名n;};结构体类型名是用户定义的任何一个有效的标识符,它的作用就如同任何一个基本类型名,利用它能够定义具有该结构类型的变量或函数;5.1.2结构体类型的定义结构体类型定义的形式:定义结构体类型的关键字,不能省略注意分号不要省略structstudent{charid[7];//长度为7的字符数组id,表示学号charname[10];//长度为10的字符数组name,表示学号floatscore;

3、//单精度实数类型score,表示入学分数};//注意分号不要省略例:用结构体类型来描述学生的学籍信息(学号、姓名和入学分数)结构体类型的特点总结如下:(1)结构体类型是用户自行构造的。(2)它由若干不同的基本数据类型的数据构成。(3)它属于C++语言的一种数据类型,与整型、实型相当。因此,定义它时不分配空间,只有用它定义变量时才分配空间。5.1.3结构体变量的定义一、先定义结构体类型再定义变量名这是C++语言中定义结构体类型变量最常见的方式,一般语法格式如下:struct结构体类型名{成员说明列表;};struct结构体类型名变量名;在C++中,一般可以省略stru

4、ctstudent{charid[7];charname[10];floatscore;};structstudentst1,st2;例:定义描述学生的学籍信息(学号、姓名和入学分数)的变量在C++中,一般写成:studentst1,st2;二、在声明类型的同时定义变量struct结构体名{成员说明列表;}变量名表列;structstudent{charid[7];charname[20];floatscore;}st1,st2;5.2结构体变量的定义三、直接定义结构体类型变量5.1.3结构体变量的定义struct{成员说明列表;}变量名表列;注意:该方式没有结构体类

5、型名,这种形式虽然简单,但不能在再次需要定义该类型的变量时,使用所定义的结构体类型。struct{charname[10];charid[7];floatscore;}st1,st2;(1)类型与变量是不同的概念,不要混淆。对结构体变量来说,在定义时一般先定义一个结构体类型,然后定义该类型的变量。在编译时,是不会为类型分配空间的,只为变量分配空间。关于结构体变量的几点说明:(2)结构体变量的存储空间理论上,是结构体变量各成员所占内存空间的总和。例如:结构体变量st1在内存中占(7+10+4=21)个字节,但系统通常为一个结构体变量分配整数倍大小的机器字长(对32位机

6、而言,一个字长占4个字节),所以,实际上系统为st1分配了24个字节的内存空间。但一般情况下,对于结构体类型变量的内存空间,只讨论其理论值。结构变量占实际内存大小可用sizeof运算:sizeof(运算量)structstudent{charid[7];charname[10];floatscore;}st1;structdate{intmonth;intday;intyear;};structstudent{intnum;charname[20];charsex;datebirthday;charaddr[40];}stu1,stu2;date是结构体类型,birt

7、hday是date类型的成员(3)成员也可以是一个结构体变量,即结构体嵌套定义。5.1.4结构体变量的引用和初始化一、用结构体变量名引用其成员格式:结构体变量名.成员名structdate{intmonth;intday;intyear;};structstudent{intnum;charname[20];charsex;datebirthday;charaddr[40];}stu1,stu2;stu1.num=20312;stu1.num表示引用结构体变量stu1中的num成员5.1.4结构体变量的引用和初始化一、用结构体变量名引用其成员格式:结

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

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

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