C++程序设计_第6章 构造数据类型.ppt
《C++程序设计_第6章 构造数据类型.ppt》由会员分享,可在线阅读,更多相关《C++程序设计_第6章 构造数据类型.ppt(37页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、1第第6章章 构造数据类型构造数据类型6.1 6.1 结构体类型结构体类型6.2 6.2 联合体联合体6.3 6.3 枚举类型枚举类型1/15/20231构造数据类型构造数据类型6.1 结构体类型结构体类型结构体是用户自定义的新数据类型结构体是用户自定义的新数据类型,在结构体,在结构体中可以包含若干个不同数据类型和不同意义的数据中可以包含若干个不同数据类型和不同意义的数据项,从而使这些数据项组合起来反映某一个信息。项,从而使这些数据项组合起来反映某一个信息。用户自定义的数据类型可以与用户自定义的数据类型可以与intint、doubledouble等基等基本数据类型一样,用来作为定义其他变量的数
2、据类本数据类型一样,用来作为定义其他变量的数据类型。型。结构体类型的概念结构体类型的概念1/15/20232构造数据类型构造数据类型struct struct 结构体名结构体名 数据类型成员名数据类型成员名1 1;数据类型成员名数据类型成员名2 2;:数据类型成员名数据类型成员名n n;在大括号中的内容也称为在大括号中的内容也称为“成员表列成员表列”或或“域表域表”。数据。数据类型可以是类型可以是基本类型、数组、指针、结构体基本类型、数组、指针、结构体等类型;等类型;结构体类型的声明结构体类型的声明结构体类型的声明结构体类型的声明1/15/20233构造数据类型构造数据类型struct Stu
3、dent /学生信息结构体学生信息结构体 int num;/学号学号 char name20;/姓名姓名 char sex;/性别性别 int age;/年龄年龄 float score;/成绩成绩 char addr30;/住址住址;/注意分号不要省略注意分号不要省略例:学生信息结构体例:学生信息结构体例:学生信息结构体例:学生信息结构体1/15/20234构造数据类型构造数据类型结构体类型的特点总结如下:结构体类型的特点总结如下:结构体类型是用户自行构造的。结构体类型是用户自行构造的。它由若干不同的基本数据类型的数据构成。它由若干不同的基本数据类型的数据构成。它属于它属于C+C+语言的一种
4、数据类型,与整型、实型相语言的一种数据类型,与整型、实型相当。因此,声明它时不分配空间。当。因此,声明它时不分配空间。结构体类型的特点结构体类型的特点结构体类型的特点结构体类型的特点1/15/20235构造数据类型构造数据类型结构体类型变量的定义结构体类型变量的定义一、一、先定义结构体类型再定义变量名先定义结构体类型再定义变量名 这是这是C+C+语言中定义结构体类型变量最常见语言中定义结构体类型变量最常见的方式,一般语法格式如下:的方式,一般语法格式如下:struct 结构体名 成员表列;struct 结构体名 变量名;一般不要!1/15/20236构造数据类型构造数据类型例:例:#inclu
5、de void main()struct Student /学生信息结构体学生信息结构体 int num;char name20;char sex;int age;Student student1;/定义定义 Student student2=10003,Cao Men,M,20;/初始初始化化 coutsizeof(student1)endl;testStruct.cpp1/15/20237构造数据类型构造数据类型structstruct 结构体名结构体名 成员表列;成员表列;变量名表列;变量名表列;struct Student int num;char name20;char sex;in
6、t age;student1,student2=10003,Cao Men,M,20;二、在声明类型的同时定义变量二、在声明类型的同时定义变量1/15/20238构造数据类型构造数据类型三、直接定义结构体类型变量三、直接定义结构体类型变量(无名定义无名定义)struct /注意没有结构体类型名 成员表列;变量名表列;l方式3很少使用。提倡先定义类型后定义变量提倡先定义类型后定义变量的方法。l在程序比较简单,结构体类型只在本文件中使用时,也可以用第(2)种方法。1/15/20239构造数据类型构造数据类型结构体成员也可以是一个结构体变量struct Date int month;int day;
7、int year;struct Student int num;char name20;char sex;int age;Date birthday;char addr30;student1,student2;/Date是结构体类型,birthday是Date类型的成员1/15/202310构造数据类型构造数据类型结构体变量的引用结构体变量的引用可以将一个结构体变量的值赋给另一个具有相同结构可以将一个结构体变量的值赋给另一个具有相同结构的结构体变量。的结构体变量。student1=student2;可以引用一个结构体变量中的一个成员的值。可以引用一个结构体变量中的一个成员的值。格式:结构体变量
8、名格式:结构体变量名.成员名成员名student1.num=10010;其中其中.是成员访问运算符,见是成员访问运算符,见p21。不能将一个结构体变量作为一个整体进行输入和输出,不能将一个结构体变量作为一个整体进行输入和输出,只能对结构体变量中的各个成员分别进行输入和输出。只能对结构体变量中的各个成员分别进行输入和输出。coutstudent1;/错误错误coutstudent1.num;/正确正确1/15/202311构造数据类型构造数据类型如果成员本身也是一个结构体类型,则要用若干个如果成员本身也是一个结构体类型,则要用若干个成员运算符成员运算符,一级一级地找到最低一级的成员。一级一级地找
9、到最低一级的成员。coutstudent1.birthday.month;对结构体变量的成员可以像普通变量一样进行各种对结构体变量的成员可以像普通变量一样进行各种运算。运算。sumstudent1.scorestudent2.score;可以引用结构体变量成员的地址,也可以引用结构可以引用结构体变量成员的地址,也可以引用结构体变量的地址。体变量的地址。cout&student1;cout&student1.age;1/15/202312构造数据类型构造数据类型结构体数组结构体数组 结构体数组与以前介绍过的数值型数组的不同之结构体数组与以前介绍过的数值型数组的不同之处在于:处在于:每个每个数组元
10、素数组元素都是一个都是一个结构体类型结构体类型的数据,的数据,它们都分别包括各个成员项。它们都分别包括各个成员项。1.1.定义结构体数组定义结构体数组struct Student /声明结构体类型声明结构体类型Student int num;char name20;char sex;int age;Student stu3;/定义定义Student类型的数组类型的数组stu1/15/202313构造数据类型构造数据类型2 2 结构体数组初始化结构体数组初始化 student stu23=10101,Li Lin,M,18,10102,Zhang Fun,M,19,10104,Wang Min,
11、F ;1/15/202314构造数据类型构造数据类型结构体数组应用举例结构体数组应用举例struct Person char name20;int count;void main()Person leader3=Li,0,Zhang,0,Sun,0;设设有有3 3个个候候选选人人,最最终终只只能能有有1 1人人当当选选为为领领导导。今今有有1010个个人人参参加加投投票票,从从键键盘盘先先后后输输入入这这1010个个人人所所投投的的候候选选人人的的名字名字,要求最后输出这,要求最后输出这3 3个候选人的个候选人的得票得票结果。结果。testStructArray.cpp1/15/202315构
12、造数据类型构造数据类型 int i,j;char leader_name20;for(i=0;ileader_name;/先后输入10张票上所写的姓名 for(j=0;j3;j+)/将票上姓名与3个候选人的姓名比较 if(strcmp(leader_name,leaderj.name)=0)leaderj.count+;for(i=0;i3;i+)coutleaderi.name:;coutleaderi.count-成员名。成员名。如:如:s-nums-num访问成员的第三种方法:访问成员的第三种方法:结构体变量名结构体变量名.成员名。如:成员名。如:student1.numstudent1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+程序设计_第6章 构造数据类型 C+ 程序设计 构造 数据类型
限制150内