- 1、本文档共83页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第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; /* 库存产品 */ 结构变量的定义(续) 由于结构类型名、结构变量名和结构类型的成分名有不同的应用场合,分别出现在不同意义的程序上下文中,即使结构类型名、结构变量名、结构类型的成分名有相同的名,编译程序也能根据它们在源程序文件中出现的上、下文,区别出名的不同意义 如:struct s int x; int s; s; 则“struct s”中的s表示结构类型,“int s;”中的s为成分名。在语句中,对s的引用是结构变量s。编译程序会根据标识符s 出现的上、下文确定其究竟是结构类型名,或是结构变量名,或是结构类型的成分名 结构变量初始化(续) 在定义结构变量时可同时给它置初值,称为结构变量初始化 结构变量初始化时,要按其结构类型定义中的各成分顺序逐一给出各成分的初值。如 struct point /* 说明绘图程序的坐标类型 */ int x; int y; p3 20, 50 ; 静态结构变量初始化如static struct date
文档评论(0)