
热验与放短

第十章结柄。熊合与枚朵美型 第一节结构类型 第二节结构数组 第三节结构指针 第四节在函数之间传递结构 第五节联合类型 第六节枚举类型 第七节用typedef:定义类型 第八节链表基础
第十章 结构、联合与枚举类型 第一节 结构类型 第二节 结构数组 第三节 结构指针 第四节 在函数之间传递结构 第五节 联合类型 第六节 枚举类型 第七节 用typedef定义类型 第八节 链表基础

第十章结构,熊合与枚朵美型 第一节结构美型 结构类型的概念 问题的引出 用学号、姓名、性别、年龄、住址等属性来 描述一个学生。 int num; char name [20]; char sex; int age; char addr[30]; 问题一:在程序中这些变量没有的内在联系。 问题二:如果有成百上千的学生,可能造成混乱
第十章 结构、联合与枚举类型 问题的引出 用学号、姓名、性别、年龄、住址等属性来 描述一个学生。 int num; char name[20]; char sex; int age; char addr[30]; 问题一:在程序中这些变量没有的内在联系。 问题二:如果有成百上千的学生,可能造成混乱。 一、结构类型的概念 第一节 结构类型

第十卓传粕、熊合与牧朵美型 第一节结构美型 这些数据存放在内存的 某个区域。 10010 num 将此区域统一来使用, 形成了结构体的概念。 Li Fun name 结构是逻辑上相互联系 M sex 的一组分量的集合。 18 age 结构中的分量可以有不 Beijing addr 同的类型数据,结构中的 分量称为结构的成员
第十章 结构、联合与枚举类型 这些数据存放在内存的 某个区域。 将此区域统一来使用, 形成了结构体的概念。 结构是逻辑上相互联系 的一组分量的集合。 结构中的分量可以有不 同的类型数据,结构中的 分量称为结构的成员。 num name sex age addr 10010 Li Fun M 18 Beijing 第一节 结构类型

第十李结构。熊合与敕朵美型 第一节结构美型 二、结构类型的定义 struct结构体名 数据类型 数据类型 成负名1;◆struct为关键字 成员名2; ◆结构体名是用户定 ■·n 义的类型标识。 数据类型 成员名n入s{)中包围的是组成 }; 该结构的成员。 ·成员的数据类型既可以是简单的数据类型(int、char f1oat、double...),也可以是复杂的数据类型(数组 类型和结构类型)。 比较简单数据类型时的变量说明语句:Cint
第十章 结构、联合与枚举类型 比较简单数据类型时的变量说明语句: int i; struct 结构体名 { 数据类型 成员名1; 数据类型 成员名2; …… 数据类型 成员名n; }; 二、结构类型的定义 struct为关键字 结构体名是用户定 义的类型标识。 { }中包围的是组成 该结构的成员。 成员的数据类型既可以是简单的数据类型(int、char、 float、double...),也可以是复杂的数据类型(数组 类型和结构类型)。 第一节 结构类型

第十章结构,熊合与枚朵美型 第一节结构美型 ◆结构定义实例 >为了描述日期可以定义如下结构: struct date int year; /*年 结构成员的 int month; /*月 数据类型是 int day; /*日 整型 */ >为了处理通信录,可以定义如下结构: struct address char name [30]; /*姓名。字符数组*/ char street[40];/*街道名称 米/ char city[20]; /*城市 */ char state[2];/*省市代码 */八 unsigned long zip;/*邮政编码
第十章 结构、联合与枚举类型 结构定义实例 ➢为了描述日期可以定义如下结构: struct date { int year; /* 年 结构成员的 */ int month; /* 月 数据类型是 */ int day; /* 日 整型 */ }; ➢为了处理通信录,可以定义如下结构: struct address { char name[30]; /* 姓名。字符数组 */ char street[40]; /* 街道名称 */ char city[20]; /* 城市 */ char state[2]; /* 省市代码 */ unsigned long zip; /* 邮政编码。 */ }; 第一节 结构类型

第十章结柄、熊合与枚朵美型 第一节结构美型 三、结构变量的说明 在定义了某种类型的结构体后,就可以使用该类 型的结构变量。 ·用类型说明语句说明结构变量 struct 结构体名 结构变量名; 系统为所说明的结构变量按照结构定义时说明的 组成(成员分量),分配存储数据的实际内存单元。 例:将变量today说明为date型的结构变量: struct date today; 说明多个address型的结构变量: struct address wang,li,zhang; ·结构变量同样有存储类型,存储特性与一般变量完 全相同
第十章 结构、联合与枚举类型 在定义了某种类型的结构体后,就可以使用该类 型的结构变量。 用类型说明语句说明结构变量 struct 结构体名 结构变量名; 系统为所说明的结构变量按照结构定义时说明的 组成(成员分量),分配存储数据的实际内存单元。 例:将变量today说明为date型的结构变量: struct date today; 说明多个address型的结构变量: struct address wang, li, zhang; 结构变量同样有存储类型,存储特性与一般变量完 全相同。 三、结构变量的说明 第一节 结构类型

第十幸结钧。熊合与枝朵美型 第一节结构美型 ·结构变量占用内存情况 结构变量的各个成员分量在内存中占用连 续存储区域,所占内存大小为结构中每个成员 的占用内存的长度之和。 结构变量today和wang占用在内存的情况 如图所示。 today (struct date) wang (struct address) 6个字节 96个字节 2字节 year 30字节 name 2字节 month 40字节 street 2字节 day 20字节 city 2字节 state 表示int 4字节 zip 表示char 表示unsigned long
第十章 结构、联合与枚举类型 结构变量占用内存情况 结构变量的各个成员分量在内存中占用连 续存储区域,所占内存大小为结构中每个成员 的占用内存的长度之和。 结构变量today和wang占用在内存的情况 如图所示。 2字节 2字节 2字节 today (struct date) 6个字节 year month day wang (struct address) 96个字节 30字节 40字节 20字节 2字节 4字节 name street city state zip 表示 int 表示 char 表示 unsigned long 第一节 结构类型

第十章结构。联合与枚朵美型 第一节结构美型 ·关于结构类型的说明 >类型与变量是不同的概念。 在定义结构变量时一般先定义一个结构 类型,然后定义变量为该类型。 √只能对变量赋值、存取或运算,而不能 对一个类型赋值、存取或运算。 在编译时,对类型是不分配空间的,只 对变量分配空间。 >对结构中的成员,可以单独使用,它的作 用与地位相当于普通变量。 >成员也可以是结构变量。 >成员名可以与程序中的变量名相同时,二 者不代表同一对象
第十章 结构、联合与枚举类型 关于结构类型的说明 ➢类型与变量是不同的概念。 ✓在定义结构变量时一般先定义一个结构 类型,然后 定义变量为该类型。 ✓只能对变量赋值、存取或运算,而不能 对一个类型赋值、存取或运算。 ✓在编译时,对类型是不分配空间的,只 对变量分配空间。 ➢对结构中的成员,可以单独使用,它的作 用与地位相当于普通变量。 ➢成员也可以是结构变量。 ➢成员名可以与程序中的变量名相同时,二 者不代表同一对象。 第一节 结构类型

第十草结钧、熊合与枚朵美型 第一节结构美型 ◆在定义结构时说明结构变量 >例如:struct student { int num; char name [20] char sex;int age; char addr [30]; student1,student2; ·直接说明结构变量 >例如:struct char name [20]; char addr[30]; zhang;
第十章 结构、联合与枚举类型 在定义结构时说明结构变量 ➢例如:struct student { int num; char name[20]; char sex; int age; char addr[30]; }student1,student2; 直接说明结构变量 ➢例如:struct { char name[20]; char addr[30]; }zhang; 第一节 结构类型