自定义数据结构.PPT
文本预览下载声明
* 第3章 自定义的数据结构 结构体、共同体和枚举类型 结构体定义: 将不同种类型的数据有序地组合在一起,构造出一个新的数据类型,这种形式称为结构体。 结构体是多种类型组合的数据类型。 struct 结构体名 { 成员列表 }; struct student { int num; char name[20]; char sex; char addr[30]; }; 结构体名 关键字 不同数据类型组成的成员 分号不能少 定义结构体类型变量的方法 一、先定义结构体类型再定义变量名 struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; }; struct student student1, student2; 结构体类型名 变量1 变量2 结构体类型只是一种数据类型,不占内存空间,只有定义结构体类型变量时才开辟内存空间。 ?到底这个结构体占用多大内存呢? #pragma pack(1) typedef struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; } STUDENT ; STUDENT student1,student2; typedef的用法 二、在定义类型的同时定义变量 struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; } student1, student2; struct 结构体名 { 成员列表 }变量名列表; 紧接着定义变量 2、在编译时,仅对变量分配空间,不对类型分配空间。 1、结构体类型的变量在内存依照其成员的顺序顺序排列,所占内存空间的大小是其全体成员所占空间的总和。 3、对结构体中各个成员可以单独引用、赋值,其作用与变量等同。 格式:变量名 . 成员名 student1 . num 4、结构体的成员可以是另一个结构体类型。 struct date { int month; int day; int year; }; struct student { int num; char name[20]; struct date birthday; }; 成员类型 成员名 5、成员名可以与程序中的变量名相同,二者分占不同的内存单元,互不干扰。例如,在程序中仍可以定义变量 int num; 结构体类型变量的引用 1、不能对结构体变量整体赋值或输出,只能分别对各个成员引用。 cinstudent1; cinstudent1.num; student1.num=100; 可以将一个结构体变量整体赋给另外一个相同类型的结构体变量。 student2=student1; 2、嵌套的结构体变量必须逐层引用。 student1.birthday.day=25; 3、结构体变量中的成员可以同一般变量一样进行运算。 student1.birthday.day++; student1.score+=60; 错误 必须用成员名引用 对局部变量类型的结构体变量初始化 void main(void) { struct student { long int num; char name[20]; char sex; char addr[30]; } student1={901031, “Li Lin”, ‘M’, “123 Beijing Road”}; coutstudent1.nameendl; 输出: LiLin 对变量初始化,一一赋值 关于结构类型变量的使用
显示全部