程序设的计基础09.ppt

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序设的计基础09

程序设计基础(C语言) 东北大学高级语言程序设计课程组 课程网站:/cxsj 程序设计基础(C语言) 结构体、共用体与枚举类型 1.结构概念 C语言允许将一组逻辑上联系的不同类型的数据组织起来作为一个整体使用 保证了数据之间的内在联系 用同一个名字引用的相关变量的集合 提供了将相关信息组合在一起的一种手段 C语言提供了一种新的称为结构的构造型数据类型 概念 结构是一组相关的不同类型的数据的集合 结构类型为处理复杂的数据提供了便利的手段 结构体类型的变量可以拥有不同数据类型的成员 是不同数据类型成员的集合 1.结构概念 结构体与数组 组成方式 都是由若干分量组成的 数组是由相同类型的数组元素组成 结构的分量可以是不同类型的 结构中的分量称为结构的成员 访问方式 数组中的分量(元素)是通过数组的下标 访问结构中的成员是通过成员的名字 结构体的成员可以分别引用 利用结构体可以组织复杂的紧凑的数据结构 如:链表、队列、堆栈和数等 2.结构的定义 在程序中使用结构之前,必须做的工作 定义结构体类型 建立一个可用于定义结构类型变量的模型 其组成的各个要素称为结构体的成员 结构的定义说明了该结构的组成成员,以及每个成员的数据类型 变量在计算机中的存在格式 定义结构体变量 要使用该结构就必须说明结构类型的变量 根据结构体类型为所定义的变量分配内存空间 提示 不同的问题有不同数据成员,即不同描述的结构体类型 可以理解为结构体类型根据所针对的问题不同而使得其结构体的成员是不同的 可以有任意多的结构体类型描述 使得C语言可以解决的问题范围扩大 2.结构的定义 结构定义的形式 说明 struct为关键字 结构的标识符 结构类型名称是所定义的结构的类型标识 由用户自己定义 { }中包围的是组成该结构的成员项 每个成员的数据类型既可以是简单的数据类型,也可以是复杂的数据类型 整个定义作为一个完整的语句用分号结束 提示 结构体类型的说明只是列出了该结构的组成情况 标志这种类型的结构模式已存在 编译系统并没有因此而分配存储空间 2.结构的定义 结构定义的形式 例 当一个成员项是一个结构体时,就形成了结构体的嵌套 在数据处理时有时要用到结构体嵌套处理组织复杂的数据集合 常见的错误是忘记终止结构定义的“;” 2.结构的定义 结构定义的形式 提示 结构体必须有struct开始 结构体的成员可以是基本数据类型,也可以是数组和其它结构类型的变量 结构体不能递归定义 在结构体类型说明中不能有该结构体变量 允许有指向该结构体的指针成员(自引用结构) 结构的定义可以在一个函数的内部,也可以在所有函数的外部 在函数内部定义的结构,仅在该函数内部有效 定义在外部的结构,在所有函数中都可以使用 定义结构体类型后可以定义该结构体类型的变量 通过变量使用该结构,以对不同变量的成员进行引用 2.结构的定义 结构体变量 定义的形式 struct 结构类型名称 结构变量名; 说明 说明结构变量的作用类似于说明一个类型变量一样 系统为所说明的结构变量按照结构定义时组成分配存储数据的实际内存单元 结构变量的成员在内存中占用连续存储区域,所占内存大小为结构中每个成员的长度之和 例:struct date { int year; int mouth; int day; }; struct date today,days[20],*day; 2.结构的定义 结构体变量 提示 在程序中,结构的定义要先于结构变量的说明 不能用尚未定义的结构类型对变量进行说明 结构的定义和说明可以同时进行 被说明的结构变量可直接在结构定义的“ }”后给出 例如说明结构变量today可以使用下面的语句 struct date { int year, month, day; } today; 使用sizeof计算一个结构变量占用内存的实际大小 使用的一般形式为:sizeof(变量或类型说明符) 2.结构的定义 结构体变量 提示 结构体类型与结构体变量是两个不同的概念 编译系统不为结构体类型分配内存空间,只为结构体变量分配内存空间 内存的大小依据结构体类型的定义(结构体类型的变量占内存长度不定长) 结构体中的成员名可以和程序中的其他变量同名,互不影响,也可以与结构变量名相同 但应尽量避免在不同的结构中使用相同的结构名 虽然允许,但会造成混淆 结构体变量的成员(域)可以单独使用(相当于基本变量) 成员也可以是指向本结构体类型的指针 3.使用结构体 结构成员的引用 结构作为若干成员的集合是一个整体 可对结构整体进行操作 可访问结构中

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档