自定义数据结构.ppt
《自定义数据结构.ppt》由会员分享,可在线阅读,更多相关《自定义数据结构.ppt(25页珍藏版)》请在三一办公上搜索。
1、1,第3章 自定义的数据结构,结构体、共同体和枚举类型,2,结构体定义:,将不同种类型的数据有序地组合在一起,构造出一个新的数据类型,这种形式称为结构体。,结构体是多种类型组合的数据类型。,3,struct 结构体名 成员列表;,struct student int num;char name20;char sex;char addr30;,结构体名,关键字,不同数据类型组成的成员,分号不能少,4,定义结构体类型变量的方法,一、先定义结构体类型再定义变量名,struct student int num;char name20;char sex;int age;float score;char
2、addr30;,struct student student1,student2;,结构体类型名,变量1,变量2,结构体类型只是一种数据类型,不占内存空间,只有定义结构体类型变量时才开辟内存空间。,?到底这个结构体占用多大内存呢?,#pragma pack(1),5,typedef struct student int num;char name20;char sex;int age;float score;char addr30;STUDENT;STUDENT student1,student2;,typedef的用法,6,二、在定义类型的同时定义变量,struct student int
3、num;char name20;char sex;int age;float score;char addr30;student1,student2;,struct 结构体名 成员列表 变量名列表;,紧接着定义变量,7,2、在编译时,仅对变量分配空间,不对类型分配空间。,1、结构体类型的变量在内存依照其成员的顺序顺序排列,所占内存空间的大小是其全体成员所占空间的总和。,3、对结构体中各个成员可以单独引用、赋值,其作用与变量等同。,格式:变量名.成员名 student1.num,8,4、结构体的成员可以是另一个结构体类型。,struct date int month;int day;int ye
4、ar;,struct student int num;char name20;struct date birthday;,成员类型,成员名,5、成员名可以与程序中的变量名相同,二者分占不同的内存单元,互不干扰。例如,在程序中仍可以定义变量 int num;,9,结构体类型变量的引用,1、不能对结构体变量整体赋值或输出,只能分别对各个成员引用。,cinstudent1;,cinstudent1.num;student1.num=100;,可以将一个结构体变量整体赋给另外一个相同类型的结构体变量。student2=student1;,2、嵌套的结构体变量必须逐层引用。,student1.birth
5、day.day=25;,3、结构体变量中的成员可以同一般变量一样进行运算。,student1.birthday.day+;student1.score+=60;,错误,必须用成员名引用,10,对局部变量类型的结构体变量初始化,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,关于结构类型变量的使用,说明以下几点
6、:1、同类型的结构体变量之间可以直接赋值。这种赋值等同于各个成员的依次赋值。2、结构体变量不能直接进行输入输出,它的每一个成员能否直接进行输入输出,取决于其成员的类型,若是基本类型或是字符数组,则可以直接输入输出。3、结构体变量可以作为函数的参数,函数也可以返回结构体的值。当函数的形参与实参为结构体类型的变量时,这种结合方式属于值调用方式,即属于值传递。,12,结构体数组,结构体数组中的每个元素都是一个结构体类型的变量,其中包括该类型的各个成员。数组各元素在内存中连续存放。,结构体实际例子:TCP 报头,13,一、结构体数组的定义,struct student int num;char nam
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自定义 数据结构
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6019641.html