结构体、共同体和枚举类型.ppt





《结构体、共同体和枚举类型.ppt》由会员分享,可在线阅读,更多相关《结构体、共同体和枚举类型.ppt(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第七章第七章 结构体、共同体和枚举类型结构体、共同体和枚举类型 1定义:定义:将将不同种类型不同种类型的数据有序地的数据有序地组合在一起组合在一起,构,构造出一个造出一个新的数据类型新的数据类型,这种形式称为,这种形式称为结构结构体。体。结构体是多种类型组合的结构体是多种类型组合的数据类型数据类型。2struct 结构体名结构体名 成员列表成员列表 ;struct student int num;char name20;char sex;char addr30;结构体名结构体名关键字关键字不同数据不同数据类型组成类型组成的的成员成员分号不能少分号不能少3定义结构体类型变量的方法定义结构体类型变
2、量的方法一、先定义结构体类型再定义变量名一、先定义结构体类型再定义变量名struct student int num;char name20;char sex;int age;float score;char addr30;struct student student1,student2;结构体类型名结构体类型名变量变量1变量变量2结构体类型只是一种数据结构体类型只是一种数据类型,不占内存空间,只类型,不占内存空间,只有定义结构体类型有定义结构体类型变量变量时时才开辟内存空间。才开辟内存空间。4#define STUDENT struct student STUDENT int num;cha
3、r name20;char sex;int age;float score;char addr30;STUDENT student1,student2;凡是凡是STUDENT的地的地方都用方都用struct student 机械替换。机械替换。5二、在定义类型的同时定义变量二、在定义类型的同时定义变量struct student int num;char name20;char sex;int age;float score;char addr30;student1,student2;struct struct 结构体名结构体名 成员列表成员列表 变量名列表;变量名列表;紧接着定紧接着定义变量
4、义变量6三、直接定义结构体类型变量三、直接定义结构体类型变量struct int num;char name20;char sex;int age;float score;char addr30;student1,student2;struct 成员列表成员列表 变量名列表;变量名列表;不出现结构体名。不出现结构体名。72 2、在编译时,仅对、在编译时,仅对变量变量分配空间,不对分配空间,不对类型类型分配分配空间。空间。1 1、结构体类型的变量在内存、结构体类型的变量在内存依照其成员的顺序依照其成员的顺序顺顺序排列,所占内存空间的大小是其全体成员所占空序排列,所占内存空间的大小是其全体成员所占
5、空间的间的总和总和。3 3、对结构体中各个成员可以单独引用、赋值,其、对结构体中各个成员可以单独引用、赋值,其作用与变量等同。作用与变量等同。格式:格式:变量名变量名.成员名成员名 student1.num student1.num84 4、结构体的成员可以是另一个结构体类型。、结构体的成员可以是另一个结构体类型。struct date int month;int day;int year;struct student int num;char name20;struct date birthday;成员类型成员类型成员名成员名5 5、成员名可以与程序中的变量名相同,二者分占不同的内、成员名可
6、以与程序中的变量名相同,二者分占不同的内存单元,互不干扰。例如,在程序中仍可以定义变量存单元,互不干扰。例如,在程序中仍可以定义变量 int num;int num;9结构体类型变量的引用结构体类型变量的引用1 1、不能对结构体变量整体赋值或输出,只能分别对、不能对结构体变量整体赋值或输出,只能分别对各个成各个成员员引用。引用。cinstudent1;cinstudent1;cinstudent1.num;student1.num=100;cinstudent1.num;student1.num=100;可以将一个结构体变量可以将一个结构体变量整体整体赋给另外一个相同类型的结构赋给另外一个相同
7、类型的结构体变量。体变量。student2=student1;student2=student1;2 2、嵌套的结构体变量必须逐层引用。、嵌套的结构体变量必须逐层引用。student1.student1.birthday.birthday.dayday=25;=25;3 3、结构体变量中的成员可以同一般变量一样进行运算。、结构体变量中的成员可以同一般变量一样进行运算。student1.birthday.day+;student1.score+=60;student1.birthday.day+;student1.score+=60;错误错误必须用成员名引用必须用成员名引用10对局部变量类型的结
8、构体变量初始化对局部变量类型的结构体变量初始化void main(void)struct student long int num;char name20;char sex;char addr30;student1=901031,“Li Lin”,M,“123 Beijing Road”;coutstudent1.nameendl;输出:输出:LiLin对变量初始化,一一赋值对变量初始化,一一赋值11关于结构类型变量的使用,说明以下几点关于结构类型变量的使用,说明以下几点:1 1、同类型的结构体变量之间可以直接赋值。这种、同类型的结构体变量之间可以直接赋值。这种赋值等同于各个成员的依次赋值。赋
9、值等同于各个成员的依次赋值。2 2、结结构构体体变变量量不不能能直直接接进进行行输输入入输输出出,它它的的每每一一个个成成员员能能否否直直接接进进行行输输入入输输出出,取取决决于于其其成成员员的的类类型型,若若是是基基本本类类型型或或是是字字符符数数组组,则则可可以以直直接接输输入入输出。输出。3 3、结结构构体体变变量量可可以以作作为为函函数数的的参参数数,函函数数也也可可以以返返回回结结构构体体的的值值。当当函函数数的的形形参参与与实实参参为为结结构构体体类类型型的的变变量量时时,这这种种结结合合方方式式属属于于值值调调用用方方式式,即即属属于值传递。(举例说明)于值传递。(举例说明)12
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构 共同体 枚举 类型

限制150内