- 1、本文档共34页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
11.6.2 分析 无须对纸张大小、列数甚至图的比例作任何假设。只需编写一个函数,它将纸张大小作为参数,使柱状图能放在该纸张上。这可以使函数适用于任何的情况。我们将数值存放在链表的一系列结构里。这样,就只需将第一个结构传递给函数,函数就能够从链表中得到所有的结构。这个结构非常简单,但以后可以用自己设计的信息去修饰它 。 11.6.3 解决方案 很明显,这个程序将使用结构,因为这是本章讨论的主题。第一步是设计程序要使用的结构。这里将使用typedef,以避免重复使用关键字struct 。 11.7 小结 本章很长,但其主题很重要。如果想高效地使用C语言,就必须熟练掌握结构,了解指针与函数的重要性。 许多实际的应用程序主要处理的是人、车或物料,这些都需要用几个不同的值来表示。而C语言中的结构是处理这类复杂对象的最佳工具。虽然某些操作看起来相当复杂,但用于处理的是复杂的实体,所以复杂的不是编程本身,而是要解决的问题。 第12章将介绍如何将数据存储到外部文件中。当然这包括存储到结构中 。 C入门经典(第4版) 第11章 结构化数据 前面学习了如何声明和定义变量,使之包含各种类型的数据,如整数、浮点数和字符等。学习了如何创建这些类型的数组及指针数组,这些指针指向包含可用数据类型的内存位置。这些很有用,但是许多应用程序还需要一些更灵活的功能 。 11.1 数据结构:使用struct 关键字struct能定义各种类型的变量集合,称为结构(structure),并把它们视为一个单元 。 定义结构类型和结构变量 访问结构成员 未命名的结构 结构数组 表达式中的结构 结构指针 为结构动态分配内存 11.1.1 定义结构类型和结构变量 可以将结构的声明和结构变量的声明分开。取代前面例子的语句如下: struct horse { int age; int height; char name[20]; char father[20]; char mother[20]; }; struct horse Dobbin = { 24, l7, Dobbin, Trigger, Flossie }; 11.1.2 访问结构成员 现在知道如何定义结构及声明结构变量了,还必须引用结构的成员。结构变量的名称不是一个指针,所以需要特殊的语法访问这些成员。 要引用结构成员,应在结构变量名称的后面加上一个句点,再加上成员变量名称。例如,发现Dobbin隐瞒了它的年龄,事实上它比初始化的值年轻,就可以将值修正如下: Dobbin.age = 12; 11.1.3 未命名的结构 不—定要给结构指定标记符名字。用一条语句声明结构和该结构的实例时,可以省略标记符名字。在上一个例子中,声明了horse类型和该类型的实例My_first_horse,也可以改为: struct { /* Structure declaration and... */ int age; int height; char name[20]; char father[20]; char mother[20]; } My_first_horse; /* ...structure variable declaration combined */ 使用这种方法的最大缺点是不能在其他语句中定义这个结构的其他实例。这个结构类型的所有变量必须在一行语句中定义。 11.1.4 结构数组 保存马匹数据的基本方法就是这样,但在处理50或100匹马如此大量的数据时会比较麻烦,此时需要一个更可靠的方法去处理大量的马匹数据。使用变量也会遇到这个问题。此时解决方法是使用数组,这里也可以声明一个horse数组。 11.1.5 表达式中的结构 结构中的成员可以像一般变量那样用于表达式。以程序11.2中的结构为例,可以将它们用在下面的表达式中: My_horses[1].height = (My_horses[2].height + My_horses[3].height]/2; —匹马的高度是另两匹马的平均高度是没什么道理的,但这是一个合法的语句。也可以在赋值语句中使用整个结构元素。 My_horses[1] = My horses[2]; 11.1.6 结构指针 要获得结
文档评论(0)