第10讲结构和动态数据结构基础PartI.ppt

《程序设计》-2005年秋 第10讲 结构和动态数据结构基础 (Part I) 提要 结构类型和结构变量 结构数组 结构形参和结构指针形参 链表及其应用 联合 位域 枚举 类型定义 提要 结构类型和结构变量 结构数组 结构形参和结构指针形参 链表及其应用 联合 位域 枚举 类型定义 结构类型和结构变量 结构类型 一个数据实体常常包含多项不同属性的数据信息 一个学生的数据实体可能要包含以下多项数据信息:学号、姓名、性别、年龄、成绩、家庭地址 这类实体的数据因所包含的成分类型不同,不能用单个数组来表示,也不便将它们的成分分拆成多个独立的单个数据项,因为这样会失去实体的整体性 C语言用结构数据类型描述由若干独立意义成分组成的数据实体 结构类型和结构变量 结构类型的定义 定义一个结构类型的一般形式为 struct 结构类型名 { 成分说明表 }; 其中,关键字“struct”引出结构类型的定义 struct之后任选的标识符是结构类型的名字 用花括号括住的是一张该结构类型的成分说明表,指明组成此种结构类型全部成分 结构类型定义示例 结构变量 在结构类型定义中,详细列出了结构类型所包含的每个成分的名及其类型。结构类型定义只是表明一种数据类型,是定义一种数据结构的“模式”或“样板”,并不定义“实物”,不要求分配存储单元。程序要使用结构数据,必须定义结构变量 结构变量在存在期间要占用存储单元,它的成分个数和各成分的类型与结构类型定义中的成分个数和各成分的类型相一致 具有结构类型的变量就是结构变量,结构变量也简称结构 结构变量的定义 程序定义结构变量有两种不同的方法 方法一:先定义结构类型,再定义结构变量 方法二:定义结构类型时,同时定义结构变量 方法一:先定义结构类型,再定义结构变量 其一般形式:struct 结构类型名 结构变量标识符表; 如利用已定义的结构类型 struct stdType,则代码 struct stdType st1, st2, stArray[200]; 定义了两个结构变量st1和st2,另定义数组 stArray[]的元素类型为 struct stdType 结构变量的定义(续) 方法一:先定义结构类型,再定义结构变量 定义结构变量的写法与定义一个标准数据类型变量有区别 在定义结构变量的这种方法中,不仅要明确指明变量的类型为结构 (struct),而且同时要指明某一特定的结构类型名(如 stdType) 在定义标准数据类型的变量时,只需指明其类型即可,如“int i ;” 其它定义结构变量的例子 struct date date1, date2; /* 定义两个日期变量 */ struct person employee; /* 定义一个职工变量 */ 定义两个struct date型变量date1和date2,一个struct person型变量employee 结构变量的定义(续) 方法二:定义结构类型时,同时定义结构变量 其一般形式: struct 结构类型名 { 成分说明表 } 结构变量标识符表; 如代码 struct point{ /* 说明绘图程序的坐标类型 */ int x; int y; } p1, p2; 定义struct point型变量p1、p2。在这种定义形式中,如某种形式的结构类型只是一次性定义几个变量,还可以省略结构类型名,直接定义结构变量 结构变量的定义(续) 方法二:定义结构类型时,同时定义结构变量 如 struct { char name [20]; /* 产品名称 */ int num; /* 产品编号 */ float price; /* 价格 */ float quantity; /* 数量 */ } part; /* 库存产品 */ 结构变量的定义(续) 由于结构类型名、结构变量名和结构类型的成分名有

文档评论(0)

1亿VIP精品文档

相关文档