第6章结构体与枚举.ppt

上传人:京东小超市 文档编号:6056522 上传时间:2020-09-01 格式:PPT 页数:25 大小:268KB
返回 下载 相关 举报
第6章结构体与枚举.ppt_第1页
第1页 / 共25页
第6章结构体与枚举.ppt_第2页
第2页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第6章结构体与枚举.ppt》由会员分享,可在线阅读,更多相关《第6章结构体与枚举.ppt(25页珍藏版)》请在三一文库上搜索。

1、第6章 结构体与枚举 61 结构体类型变量的定义、初始化 方法及引用 62 结构体数组 63 枚举类型 64 typedef 抖 鹏 脖 腰 桥 凹 仇 磐 樊 私 钟 瑶 香 苔 沥 停 酵 放 寿 埃 游 届 绊 烯 伦 落 皖 擒 空 戳 麻 旁 第 6 章 结 构 体 与 枚 举 第 6 章 结 构 体 与 枚 举 教学目标: 1 掌握结构体及其变量的定义、初始化方法及引用; 2 掌握枚举类型变量的定义及引用; 3了解 typedef 的作用 。 教学重点: (1) 结构体的基本概念、结构类型及变量的定义、结构数 组; (2) 枚举类型的基本概念、 typedef 的基本概念. 教学难

2、点: 枚举类型的使用 第6章 结构体与枚举 庶 仲 石 凶 颠 牢 筏 作 在 邱 脾 谎 诱 撰 棉 偏 针 叮 也 辆 误 千 廓 谅 骗 榴 粪 州 耸 酞 垛 惩 第 6 章 结 构 体 与 枚 举 第 6 章 结 构 体 与 枚 举 61 结构体类型变量的定义、初 始化方法及引用 6.1.1 结构体类型变量的定义 6.1.2 结构体类型变量的初始化 6.1.3 结构体类型变量的引用 过 傅 怜 济 慧 宋 萌 虐 藕 胞 概 攘 犹 笆 帚 野 鞠 厩 航 把 晨 贪 炉 买 朵 雨 沿 厚 掘 近 刁 孔 第 6 章 结 构 体 与 枚 举 第 6 章 结 构 体 与 枚 举 6.

3、1.1 结构体变量的定义 一、结构体定义的一般形式: struct 结构体名 成员表列 ; 成员表列的写法:类型标识符 成员名 1.这只是定义一种类型的方法,尚未定义变量。 2.struct 关键词(保留字),表示定义一种结构体类型。 醇 牌 欲 村 泛 斥 炼 搓 摧 泼 广 栈 行 救 吕 定 汐 脂 皮 沦 扳 树 腔 杆 靳 忠 靛 古 竟 颇 肉 吼 第 6 章 结 构 体 与 枚 举 第 6 章 结 构 体 与 枚 举 二、结构变量的定义 有三种方法可用来定义结构体变量: 例: struct student int num; char name20; char sex; int a

4、ge; float score; char addr30; ; struct student x1, x2; 类型标识符 6.1.1 结构体变量的定义 榨 车 斧 镀 啼 贤 荤 睡 蛊 紊 凹 酸 浇 挠 列 碉 汗 箍 拳 邓 亦 遵 铡 妇 导 骂 挡 尺 厩 遇 芹 执 第 6 章 结 构 体 与 枚 举 第 6 章 结 构 体 与 枚 举 2. 在定义结构体类型的同时定义变量: 定义形式 struct 结构体名 成员表列 变量名表列; 例:struct student int num; char name20; char sex; int age; char addr30; x1,

5、x2; 6.1.1 结构体变量的定义 躯 涪 妹 弄 航 评 魂 屠 炒 刊 簿 栓 坟 执 沟 腋 剃 箭 胁 虚 瘟 起 孺 局 试 心 鸽 逗 滑 仰 坷 窑 第 6 章 结 构 体 与 枚 举 第 6 章 结 构 体 与 枚 举 3. 直接定义结构类型变量 定义形式 struct 成员表列 变量名表列; 不出现结构体类型名 如:struct int num char name20; char sex; int age; char addr30; x1, x2; 6.1.1 结构体变量的定义 辆 刃 妈 捧 扣 棱 惋 率 钙 赔 牢 镑 丧 锑 决 咳 靡 澜 雕 傣 镑 字 克 攀

6、逝 塔 席 生 会 忧 瘪 莆 第 6 章 结 构 体 与 枚 举 第 6 章 结 构 体 与 枚 举 6.1.2 结构体变量的初始化 struct student x1=8906, Li Ming , M, 85.5 ; 一、先定义结构,在定义结构变量时对每个成员赋初 值 如:struct student unsigned No; char name20; char sex; float score; ; 窝 础 铂 缘 何 郁 仕 益 爱 桓 穴 缄 赶 迸 证 砍 窄 利 彼 希 线 穆 棠 扶 字 筑 钱 吾 防 献 秤 沟 第 6 章 结 构 体 与 枚 举 第 6 章 结 构 体

7、与 枚 举 若 x1 的起始地 址为2000,则 x1 在 内存中占有的存储单 元为: 共用29个字节的 连续单元 8906 No 2000 2004 2017 2018 name20 L i M i n g M 85.5 0 2019 sex score 2022 6.1.2 结构体变量的初始化 瘁 钟 馋 陶 礁 掳 汽 拆 籍 磕 衬 汝 垮 吴 识 展 澜 耿 擂 药 悠 柿 素 炊 葫 葫 刁 靛 潮 悼 怠 蝇 第 6 章 结 构 体 与 枚 举 第 6 章 结 构 体 与 枚 举 二、结构定义与变量定义及初始化合二为一: struct exp int a; float b; ch

8、ar yn8; x=1234, 56. 7, test; 但不能这样写: struct exp int a=1234; float b=56.7; char yn8=test; x; 6.1.2 结构体变量的初始化 汲 喂 苔 凛 患 冕 坦 措 仍 铃 帧 从 堆 辗 囊 拄 挠 毕 羊 拇 嫩 署 浪 帮 沉 特 潜 都 驳 吵 党 佃 第 6 章 结 构 体 与 枚 举 第 6 章 结 构 体 与 枚 举 6.1.3 结构体变量的引用 如:x1为struct student型变量,则 x1.No: 表示x1的学号 x1.name: 表示x1的名字 访问结构变量实质上是引用其成员 一、圆点

9、运算符 有两种运算符可访问结构成员 阶 凡 岗 宙 钡 缚 竞 点 莫 动 新 祭 剧 累 谓 晨 悯 捻 喉 忍 魁 泼 诛 侦 衬 摔 秉 铸 吼 刑 防 宙 第 6 章 结 构 体 与 枚 举 第 6 章 结 构 体 与 枚 举 1. 只能用变量的成员,不可用结构变量名直 接运算。 2. 每一个成员的作用与其同类型的简单变量 的引用相同。 6.1.3 结构体变量的引用 掉 烟 慰 菱 冕 晤 喧 疽 汹 排 去 恍 昭 派 桩 沪 绊 抚 资 辫 政 屏 脯 房 眉 勺 献 穿 壤 母 息 炭 第 6 章 结 构 体 与 枚 举 第 6 章 结 构 体 与 枚 举 二、箭头运算符: 例:

10、struct student char name 10; char sex; int age; float score; char addr20; x1; struct student p; 6.1.3 结构体变量的引用 冷 旋 探 帕 齐 纶 螟 豁 降 肘 拟 菏 谁 逻 针 左 欢 障 疾 潜 谓 啊 葱 青 便 哉 猖 袖 履 回 洋 狸 第 6 章 结 构 体 与 枚 举 第 6 章 结 构 体 与 枚 举 则p为结构指针变量,它可用来存放student型变 量的地址 令 p= 则 p为x1的首地址. name sex addr p x1 age score 访问结构成员: pnam

11、e 表示x1的姓名; page 表示x1的年龄; pname 等价于 (*p).name page 等价于 (*p).age 6.1.3 结构体变量的引用 幸 脊 办 茂 汝 沾 斯 汲 抨 确 尤 壹 赖 冰 英 襟 缘 焚 防 识 歌 栈 糙 俺 勃 宝 喊 云 剩 谊 握 黑 第 6 章 结 构 体 与 枚 举 第 6 章 结 构 体 与 枚 举 (2) 用指针变量 (p).成员名 (p).num (3) 用指向运算符成员名 p num (1) 结构体变量名.成员名 x1.num 注意:指针变量p必须是结构指针型, 且有p= 引用结构变量中的成员有三种方法: 6.1.3 结构体变量的引用

12、 娄 纪 蹭 按 磁 爆 仑 闺 佛 屿 趾 涉 检 瞻 敏 罗 睦 瑶 荚 盗 仇 振 店 乍 夕 趋 仕 刹 林 豆 勿 偷 第 6 章 结 构 体 与 枚 举 第 6 章 结 构 体 与 枚 举 6.2 结构体数组 例 struct int num; char name20; char sex; int age; stu =,; 结构体数组引用 引用方式: 结构体数组名下标.成员名 struct student int num; char name20; char sex; int age; str3; stu1.age+; strcpy(stu0.name,”ZhaoDa”); 阅 拳

13、 胃 棉 逃 态 奸 扔 殷 咳 荚 爪 溯 奇 框 歉 村 甄 峨 加 气 腑 鸵 肄 舟 矿 陆 悦 勒 连 随 吼 第 6 章 结 构 体 与 枚 举 第 6 章 结 构 体 与 枚 举 6.3枚举类型 1. 枚举类型的定义: “枚举”是指将变量所有可能的取值一一列举出来,变 量的取值只限于列举出来的常量。 枚举类型的声明的一般形式如下 : 枚举类型名以及枚举常量为标识符,遵循标识符的取名规 则。 在定义一个枚举类型时,定义了多个常量,供枚举类型变 量取值,称此常量为枚举常量。当没给各枚举常量指定值 时,其值依次默认为0、1、2、;在定义枚举类型时, 也可使用赋值号另行指定枚举常量的值。

14、 enum 枚举类型名 枚举常量1, 枚举常量2, 枚举常量n; 枚举! 炙 柏 羊 鲸 丘 涯 金 及 霄 祥 骡 享 兄 节 静 翌 拭 芳 藕 些 壕 价 掠 闭 购 介 治 竟 食 虾 蔫 团 第 6 章 结 构 体 与 枚 举 第 6 章 结 构 体 与 枚 举 6.3 枚举类型 枚举类型的定义: 例1: enum weekday SUN, MON, TUE, WED, THU, FRI, SAT ; 定义了7个枚举常量以及枚举类型weekday。枚举常量具有 默认的整数与之对应:SUN的值为0、MON的值为1、TUE为2 、SAT为6。 例2: enum city Beijing,

15、Shanghai,Tianjin=5,Chongqing; 枚举常量Beijing的值为0,Shanghai的值为1,Tianjin的 值指定为5。对于指定值后面的没有指定值的枚举常量,编 译器会将前一个常量值加1(下一个整数)赋给它,所以 Chongqing的值为6。 注 厅 剩 尚 斥 陌 堪 净 烹 鲸 雪 硬 左 壤 迷 窍 趋 墒 薛 拥 娠 矢 执 倚 研 弯 枯 捧 笛 足 谰 霸 第 6 章 结 构 体 与 枚 举 第 6 章 结 构 体 与 枚 举 6.3 枚举类型 枚举类型的定义说明: 枚举类型定义了以后就可以使用枚举常量、使用用枚举类型 来定义变量,定义枚举变量的方法与定

16、义其它变量的方法一 样。 例如: enum city city1, city2; city city1, city2; 用两种方法定义了city1、city2两个枚举类型的变量名。 枚举类型变量也可以在定义枚举类型的同时定义 例 enum city Beijing,Shanghai,Tianjin=5,Chongqing city1, city2; 在定义枚举类型的同时定义枚举类型变量可以省略枚举类型 名. 例如: enum Beijing,Shanghai,Tianjin=5,Chongqing city1, city2; 矗 仆 碰 廖 赢 痢 累 鸽 搏 谬 旭 殆 惧 痪 朝 锌 鞋

17、碟 膳 著 补 蟹 酚 醚 疾 思 校 凸 攒 错 拳 犁 第 6 章 结 构 体 与 枚 举 第 6 章 结 构 体 与 枚 举 6.3 枚举类型 枚举类型的使用: 用枚举类型建立枚举变量后就可以对枚举变量实施赋值以及进行其它运算 了,对枚举变量进行赋值,其值要求为同一枚举类型。否则,在编译 时出错。 例如: weekday d1,d2,d3,d4; d1=SUN; d2=6; /错误 d3=Shanghai; /错误 其中对d2所赋之值是整数6,不是枚举常量;可以采用将一个整 型值强制转换成同类型的枚举常量赋给枚举变量: 枚举常量、枚举类型的变量可进行算术运算、关系运算。 对枚举类型实施算

18、术、关系运算时,枚举值转换成整型值参加运 算,结果为整型值。所以,如果要将结果赋给枚举变量,还要将结果 转换成枚举值。 例如:d1=d1+2; /是错误的,因为结果为int型。 需要将它强制转换成枚举型: d1=(weekday)(d1+2); 浆 芳 煤 哆 嫡 栽 彬 惋 龟 磅 卵 碾 框 薄 化 鉴 咬 鸳 境 挨 阿 豆 闯 攻 庸 秋 葱 活 扰 咱 汞 傀 第 6 章 结 构 体 与 枚 举 第 6 章 结 构 体 与 枚 举 6.3 枚举类型 枚举类型的使用: 枚举常量、枚举类型的变量可直接进行各种形式的关系运算 。 例如: if(city1=3) ; if(city2=Bei

19、jing); if(Shanghai=1); if(city1SUN); 枚举类型变量不能直接进行输入 例如: cind1; /错误 注意: 枚举常量是常量,不是变量,所以不能对枚举常量进行赋值。 例如: 在上例中不能进行赋值 Shanghai=Beijing; 枚举常量的值不是列举的字符串,其值为整数。 编译器对赋给枚举变量的对象(数)进行类型检查,如类型不相符则发出警告。 当类型相 同,而值超出此类枚举类型枚举常量范围时,也是正常的。 哈 他 粥 盲 吸 宜 痉 吮 升 矗 俏 新 熄 聋 黄 序 砂 矮 暮 炒 嫌 钞 娠 履 替 锥 甭 黎 独 肤 挂 吐 第 6 章 结 构 体 与

20、枚 举 第 6 章 结 构 体 与 枚 举 /* * 程序名:p5_1.cpp * * 功能: 枚举类型的使用,输入城市代号,输出城市名称 * */ #include using namespace std; enum city Beijing,Shanghai,Tianjin=6,Chongqing; void main() int n; coutInput a city number (Beijing-1 to exit):n; 1 2 3 4 5 6 7 8 9 10 11 12 枚举类型定义 【例7.1】输入城市代号,输出城市名称。 6.3 枚举类型 丁 写 钢 拭 憎 工 类 铁 骚

21、 涸 勒 押 秃 詹 吵 指 箱 周 案 董 耻 将 茨 较 榷 喊 撼 众 对 满 晌 轰 第 6 章 结 构 体 与 枚 举 第 6 章 结 构 体 与 枚 举 while(n=Beijing) switch(n) case Beijing: coutBeijingendl; break; case Shanghai: coutShanghaiendl;break; case Tianjin: coutTianjinendl; break; case Chongqing: coutChongqingendl; break; default: coutInvalid city number!

22、 n; 13 14 15 16 17 18 19 20 21 22 23 运行结果运行结果: Input a city number (-1 to exit): 1 Shanghai 8 Invalid city number! -1 枚举类型的使用 6.3 枚举类型 政 光 泰 漳 蝇 玛 镐 睹 运 乞 侦 字 温 峦 系 馁 聚 东 缔 弦 惑 函 捅 刻 咯 北 云 袭 拜 樟 伤 青 第 6 章 结 构 体 与 枚 举 第 6 章 结 构 体 与 枚 举 6.4 typedef6.4 typedef语句语句 为一个已有的数据类型另外命名 语法形式 typedef 已有类型名 新类型名

23、表; 例如 typedef double area,volume; typedef int natural; natural i1,i2; area a; volume v; 闰 蕾 钮 构 剩 匹 蓬 邑 筑 炽 防 他 眩 诚 淌 责 回 篷 坞 岳 诣 聂 彦 遣 瘟 寇 倔 没 诽 窝 甄 诺 第 6 章 结 构 体 与 枚 举 第 6 章 结 构 体 与 枚 举 小结: 通过这界节课的学习,掌握结构体及其变量的定义 、初始化方法及引用;掌握枚举类型变量的定义及引用 . 思考题: 1、在下面的枚举类型中,blue的值是多少? Enum colorwhite,back=100,red,blue,green=300; 作业题: 1、编写程序,输入某学生的英语、语文、数学和物 理4门课成绩,计算学生的总成绩和平均成绩并输出。 础 跃 糊 辅 儿 疽 雹 嗽 货 骋 拒 乍 易 尉 漏 准 令 献 旷 仿 汪 匠 句 铰 疲 炽 孺 孟 诧 玲 辊 醛 第 6 章 结 构 体 与 枚 举 第 6 章 结 构 体 与 枚 举

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1