1、知知 识识 回回 顾顾1.1.变量的存储类型变量的存储类型2.2.命令行参数命令行参数3.3.递归递归自动型auto寄存器型register静态型static外部型extern问问 题题 引引 出出1.1.前面几章研究的问题都比较简单前面几章研究的问题都比较简单2.2.实际生活中往往需要把不同类型的数据组织到一起处理实际生活中往往需要把不同类型的数据组织到一起处理这就是今天要研究的结构问题这就是今天要研究的结构问题 idnamesexagebirthyearmonthday1001LiqiangM1819841211002SunliF171985312.主主 要要 内内 容容9.1 9.1 类
2、型定义类型定义目的要求目的要求复习思考题复习思考题9.2 9.2 结构类型结构类型9.3 9.3 结构的处理结构的处理9.2.1 9.2.1 结构的声明结构的声明9.2.2 9.2.2 定义结构变量定义结构变量9.2.3 9.2.3 定义结构指针定义结构指针9.1 9.1 类型定义类型定义1.1.使用使用typedeftypedef关键字把一种类型定义为另一种类型关键字把一种类型定义为另一种类型2.2.说明说明类型定义是为已有的类型定义了别名,习惯上用大写类型定义是为已有的类型定义了别名,习惯上用大写如如:typedef int INT;:typedef int INT;9.2 9.2 结构类
3、型结构类型1.1.结构是用户自定义的数据类型结构是用户自定义的数据类型2.2.它允许把不同类型它允许把不同类型(也可以相同也可以相同)的数据组织到一起处理的数据组织到一起处理idnamesexagebirthyearmonthday1001LiqiangM1819841211002SunliF171985312.3.3.其中的每个列叫其中的每个列叫结构成员结构成员9.2.1 9.2.1 结构的声明结构的声明1.1.语句格式语句格式2.2.注意事项注意事项(1)(1)结构类型声明是一条语句,末尾必须以结构类型声明是一条语句,末尾必须以分号分号结束结束(2)(2)结构名可以省略,定义的结构称为结构
4、名可以省略,定义的结构称为无名结构无名结构(3)struct(3)struct与结构名一起,称做与结构名一起,称做结构类型名结构类型名(4)(4)可以在声明可以在声明结构时把它定义为另一种类型结构时把它定义为另一种类型9.2.2 9.2.2 定义结构变量定义结构变量1.1.先声明后定义先声明后定义注意:此方法只适合有名结构类型注意:此方法只适合有名结构类型2.2.声明的同时定义声明的同时定义注意:此方法对有名结构和无名结构都适应注意:此方法对有名结构和无名结构都适应3.3.使用别名定义使用别名定义typedef struct date DATE;DATE myBirthday;9.2.3 9.
5、2.3 结构指针结构指针1.1.类型为结构的指针叫类型为结构的指针叫结构指针结构指针2.2.定义结构指针的方法和定义其他类型指针完全一样定义结构指针的方法和定义其他类型指针完全一样3.3.结构指针可以执行同类型的变量和数组结构指针可以执行同类型的变量和数组9.3 9.3 结构的处理结构的处理(1)(1)格式格式1.1.结构变量的初始化结构变量的初始化结构类型结构类型 变量名变量名 =值列表值列表;(2)(2)说明说明u结构变量初始化的注意事项类似数组结构变量初始化的注意事项类似数组u两个同类型变量可以相互赋值两个同类型变量可以相互赋值2.2.访问结构成员访问结构成员(1)(1)通过结构变量访问
6、通过结构变量访问结构变量名结构变量名.成员名成员名(2)(2)通过结构指针访问通过结构指针访问结构指针名结构指针名-成员名成员名(*结构指针名结构指针名).).成员名成员名目目 的的 要要 求求1.1.理解类型定义的含义和方法理解类型定义的含义和方法2.2.掌握结构的声明方法及注意事项掌握结构的声明方法及注意事项3.3.掌握定义结构变量和结构指针的方法掌握定义结构变量和结构指针的方法4.4.掌握结构变量初始化的方法掌握结构变量初始化的方法5.5.掌握结构成员的访问方法掌握结构成员的访问方法复习思考题复习思考题说明:题目前面的说明:题目前面的*代表问题的重要程度代表问题的重要程度*2.2.如何声明结构如何声明结构?*3.3.如何定义结构变量和结构指针如何定义结构变量和结构指针?*1.1.解释下列名词解释下列名词*4.4.如何为结构变量初始化如何为结构变量初始化?(1)(1)类型定义类型定义 (2)(2)结构类型结构类型 (3)(3)结构成员结构成员 (4)(4)结构变量结构变量*5.5.如何访问结构成员如何访问结构成员?