C语言程序设计 结构体和共用体 课件.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一般形式: enum 枚举名 { 枚举值表 } ; 在枚举值表中应罗列出所有可用值,这些值称之为枚 举元素。 例: enum weekday {sun,mon,tue,wed,thu,fri,sat}; 声明了一个枚举类型 enum weekday ,可以用此类型来 定义变量,该变量只能取 7 天中的某一天。 枚举变量的说明 (3 种形式 ) (1)enum weekday 先定义再说明; {sun,mon,tue,wed,thu,fri,sat}; enum weekday a,b,c; (2)enum weekday 定义同时说明; {sun,mon,tue,wed,thu,fri,sat}a,b,c ; (3)enum 直接说明。 {sun,mon,tue,wed,thu,fri,sat}a,b,c ;; 枚举变量的赋值和使用 (1) 在 C 编译中,对 枚举元素按常量处理 ,故称枚举 常量。它们不是变量,不能对它们赋值。 例: sun=5; mon=2; sun=mon; 是错误的。 枚举变量的赋值和使用 (2) 枚举元素本身由系统定义为有序号的数值, 从 0 开始顺序定义为 0,1,2,… 例如在 weekday 中, sun 值为 0 , mon 值为 1,…,sat 值 为 6 。这个序号值是可以输出的。 例: #includestdio.h void main( ) {enum weekday {sun,mon,tue,wed,thu,fri,sat}a,b,c ; a=sun; b=mon; c=tue; printf(“%d,%d,%d”a,b,c); } 运行结果: 0,1,2 枚举变量的赋值和使用 (3) 只能把枚举值赋予枚举变量, 不能把元素的数值 直接赋予枚举变量。 例: a=sun; b=mon; 是正确的。 a=0; b=1; 是错误的。 如果一定要把数值赋予枚举变量,则必须用强制类 型转换,则应 b=(enum weekday)1; 其意义是将顺序 号为 1 的枚举元素赋予枚举变量 b ,等价于 b=mon; (4) 枚举元素不是字符常量,也不是字符串常量,使 用时无须加单、双引号。 用 typedef 定义数据类型 C 语言允许用户用 typedef 来自定义类型说明符。 例: typedef int INTEDER; ( 指定用 INTEDER 来代表 int 类型 ) 因此, INTEDER a,b; 等价于 int a,b; typedef 定义的一般形式为: typedef 原类型名 新类型名; 用 typedef 定义数据类型 例: typedef char NAME[20]; 其中, NAME 是字符数组类型,长度为 20 。然后可以 用 NAME 说明变量 : NAME s1,s2; 等价于 char s1[20],s2[20]; 用 typedef 定义数据类型 例: typedef struct student {int num;y char name[20]; float score; }STU; STU 表示 struct student 的结构类型,然后可以用 STU 来说明结构变量: STU stu1,stu2; § 12.8 动态数据结构——单向链表 一、问题 1. 用数组的方式存储学生的数据,需要预先确定学生 的人数,并且数组占用的是一块连续的内存区域。 2. 用动态存储的方法:每次分配一块空间存放一个学 生的数据,称之为一个结点。有多少学生就申请分配 多少块空间,也就建立多少个结点。当学生留级、退 学后,可删除该结点,并释放该结点占用的空间。使 用动态分配,每个结点之间的内存空间可以是不连续 的 ( 结点内是连续的 ) 。结点之间的联系可以用指针实 现。 二、链表的定义 用一个指针变量 head 指向第 1 个结点的首地址,以 后每个结点都分为两个域,一个是 数据域 ,存放各种 实际的数据;另一个域是 指针域 ,存放下一个结点的 首地址。最后一个结点因无后续结点连接,其指针域 可赋予 NULL 。 这种连接方式,在数据结构中称为 链表 。 链表中每一个结点都是同一种结构类型。 第十二章 ? 问题: 有时需要将不同类型的数据组合成一个有机 的整体,以便于引用。 如: 一个学生有学号 / 姓名 / 性别 / 年龄 / 地址等属性 int num; char name[20]; char sex;

文档评论(0)

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

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

1亿VIP精品文档

相关文档