




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、6 61 1 构造体类型变量的定义、初始化构造体类型变量的定义、初始化方法及援用方法及援用6 62 2 构造体数组构造体数组 6 63 3 枚举类型枚举类型 6 64 typedef 4 typedef 教学目的教学目的: : 1 1 掌握构造体及其变量的定义、初始化掌握构造体及其变量的定义、初始化方法及援用;方法及援用; 2 2 掌握枚举类型变量的定义及援用;掌握枚举类型变量的定义及援用; 3 3了解了解 typedef typedef 的作用的作用 。 教学重点教学重点: : 1 1 构造体的根本概念、构造类型及变构造体的根本概念、构造类型及变量的定义、构造数组;量的定义、构造数组; 2
2、2 枚举类型的根本概念、枚举类型的根本概念、 typedef typedef 的的根本概念根本概念. . 教学难点教学难点: : 枚举类型的运用枚举类型的运用6.1.1 6.1.1 构造体类型变量的定义构造体类型变量的定义6.1.2 6.1.2 构造体类型变量的初始化构造体类型变量的初始化6.1.3 6.1.3 构造体类型变量的援用构造体类型变量的援用一、构造体定义的普通方式:一、构造体定义的普通方式:struct 构造体名构造体名 成员表列成员表列 ; 成员表列的写法:类型标识符成员表列的写法:类型标识符 成员名成员名1.这只是定义一种类型的方法,尚未定义变量。这只是定义一种类型的方法,尚未
3、定义变量。2.struct 关键词关键词(保管字保管字),表示定义一种构造体类型。,表示定义一种构造体类型。二、构造变量的定义二、构造变量的定义有三种方法可用来定义构造体变量:有三种方法可用来定义构造体变量:例:例: struct student int num; char name20; char sex; int age; float score; char addr30;struct student x1, x2; 类型标识符类型标识符 2. 2. 在定义构造体类型的同时定义变量:在定义构造体类型的同时定义变量:定义方式定义方式 struct struct 构造体名构造体名 成员表列成员
4、表列 变量名表列;变量名表列;例:例:struct student struct student int num; int num; char name20; char name20; char sex; char sex; int age; int age; char addr30; char addr30; x1, x2; x1, x2;3. 3. 直接定义构造类型变量直接定义构造类型变量定义方式定义方式 structstruct 成员表列成员表列 变量名表列;变量名表列;不出现构造体类型名不出现构造体类型名如:如:structstruct int num int numchar name
5、20;char name20;char sex;char sex;int age;int age;char addr30;char addr30; x1, x2; x1, x2;6.1.2 6.1.2 构造体变量的初始化构造体变量的初始化 struct student x1=8906, Li Ming , M, 85.5 struct student x1=8906, Li Ming , M, 85.5;一、先定义构造,在定义构造变量时对每个成员赋初一、先定义构造,在定义构造变量时对每个成员赋初值值如:如:struct studentstruct student unsigned No; un
6、signed No;char name20;char name20;char sex;char sex;float score;float score; ; 假设假设 x1 的起的起始地址为始地址为2000,那么那么 x1 在内存中在内存中占有的存储单元占有的存储单元为:为:共用共用2929个字节的个字节的延续单元延续单元8906No2000201920192021name20LiMingM85.502019sexscore20226.1.2 6.1.2 构造体变量的初始化构造体变量的初始化二、构造定义与变量定义及初始化合二为一:二、构造定义与变量定义及初始化合二为一: struct exp
7、int a; float b; char yn8; x=1234, 56. 7, test; 但不能这样写:但不能这样写: struct exp int a=1234; float b=56.7; char yn8=test; x; x;6.1.2 6.1.2 构造体变量的初始化构造体变量的初始化6.1.3 6.1.3 构造体变量的援用构造体变量的援用 如:如:x1x1为为struct studentstruct student型变量,那型变量,那么么 x1.No: x1.No: 表示表示x1x1的学号的学号 : : 表示表示x1x1的名字的名字 访问构造变量本质上
8、是援用其成员访问构造变量本质上是援用其成员一、圆点运算符一、圆点运算符有两种运算符可访问构呵斥员有两种运算符可访问构呵斥员1. 1. 只能用变量的成员,不可用构造变量名直只能用变量的成员,不可用构造变量名直接运算。接运算。2. 2. 每一个成员的作用与其同类型的简单变量每一个成员的作用与其同类型的简单变量的援用一样。的援用一样。6.1.3 6.1.3 构造体变量的援用构造体变量的援用二、箭头运算符:二、箭头运算符: 例:例:struct student struct student char name 10; char sex; int age; float score; char addr2
9、0; x1;struct student p;6.1.3 6.1.3 构造体变量的援用构造体变量的援用那么那么p为构造指针变量,它可用来存放为构造指针变量,它可用来存放student型型变量的地址变量的地址令令 p=&x1; 那么那么 p为为x1的首地址的首地址.namesexaddrpx1agescore访问构呵斥员:访问构呵斥员:pname 表示x1的姓名;page 表示x1的年龄;pname 等价于 (*p).namepage 等价于 (*p).age6.1.3 6.1.3 构造体变量的援用构造体变量的援用 (2) 用指针变量用指针变量 (p).成员名成员名 (p).num (3
10、) 用指向运算符用指向运算符成员名成员名 p num (1) 构造体变量名构造体变量名.成员名成员名 x1.num留意:指针变量留意:指针变量p必需是构造指针型,必需是构造指针型,且有且有p=&x1;援用构造变量中的成员有三种方法:援用构造变量中的成员有三种方法:6.1.3 6.1.3 构造体变量的援用构造体变量的援用例 struct int num; char name20; char sex; int age; stu =,;构造体数组援用构造体数组援用援用方式:援用方式: 构造体数组名构造体数组名 下标下标.成员名成员名 struct student int num; char
11、name20; char sex; int age; str3;stu1.age+;strcpy(,ZhaoDa);1. 枚举类型的定义: “枚举是指将变量一切能够的取值一一列举出来,变量的取值只限于列举出来的常量。 枚举类型的声明的普通方式如下 :枚举类型名以及枚举常量为标识符,遵照标识符的取名规那么。在定义一个枚举类型时,定义了多个常量,供枚举类型变量取值,称此常量为枚举常量。当没给各枚举常量指定值时,其值依次默以为0、1、2、;在定义枚举类型时,也可运用赋值号另行指定枚举常量的值。 enum 枚举类型名 枚举常量1, 枚举常量2, 枚举常量n;枚举!枚举!枚举类型的定义
12、:枚举类型的定义:例例1 1: enum weekday SUN, MON, TUE, WED, THU, FRI, enum weekday SUN, MON, TUE, WED, THU, FRI, SAT SAT ; 定义了定义了7 7个枚举常量以及枚举类型个枚举常量以及枚举类型weekdayweekday。枚举常量具。枚举常量具有默许的整数与之对应:有默许的整数与之对应:SUNSUN的值为的值为0 0、MONMON的值为的值为1 1、TUETUE为为2 2、SATSAT为为6 6。例例2 2: enum city Beijing,Shanghai,Tianjin=5,Chongqing
13、enum city Beijing,Shanghai,Tianjin=5,Chongqing; 枚举常量枚举常量BeijingBeijing的值为的值为0 0,ShanghaiShanghai的值为的值为1 1,TianjinTianjin的值指定为的值指定为5 5。对于指定值后面的没有指定值的枚举常量,。对于指定值后面的没有指定值的枚举常量,编译器会将前一个常量值加编译器会将前一个常量值加1(1(下一个整数下一个整数) )赋给它,所以赋给它,所以ChongqingChongqing的值为的值为6 6。枚举类型的定义阐明枚举类型的定义阐明: :枚举类型定义了以后就可以运用枚举常量、运用用枚举类
14、型来枚举类型定义了以后就可以运用枚举常量、运用用枚举类型来定义变量,定义枚举变量的方法与定义其它变量的方法一样。定义变量,定义枚举变量的方法与定义其它变量的方法一样。 例如:例如: enum city city1, city2; enum city city1, city2; city city1, city2; city city1, city2; 用两种方法定义了用两种方法定义了city1city1、city2city2两个枚举类型的变量名。两个枚举类型的变量名。枚举类型变量也可以在定义枚举类型的同时定义枚举类型变量也可以在定义枚举类型的同时定义 例例 enum city Beijing,
15、Shanghai,Tianjin=5,Chongqing enum city Beijing,Shanghai,Tianjin=5,Chongqing city1, city2city1, city2; 在定义枚举类型的同时定义枚举类型变量可以省略枚举类型名在定义枚举类型的同时定义枚举类型变量可以省略枚举类型名. . 例如:例如: enum Beijing,Shanghai,Tianjin=5,Chongqing enum Beijing,Shanghai,Tianjin=5,Chongqing city1, city2city1, city2;枚举类型的运用:枚举类型的运用:用枚举类型建立枚
16、举变量后就可以对枚举变量实施赋值以及进展其它运算用枚举类型建立枚举变量后就可以对枚举变量实施赋值以及进展其它运算了,对枚举变量进展赋值,其值要求为同一枚举类型。否那么,在编了,对枚举变量进展赋值,其值要求为同一枚举类型。否那么,在编译时出错。译时出错。 例如例如: weekday d1,d2,d3,d4;: weekday d1,d2,d3,d4; d1=SUN; d1=SUN; d2=6; / d2=6; /错误错误 d3=Shanghai; /d3=Shanghai; /错误错误 其中对其中对d2d2所赋之值是整数所赋之值是整数6 6,不是枚举常量;可以采用将一个整,不是枚举常量;可以采用
17、将一个整型值强迫转换成同类型的枚举常量赋给枚举变量:型值强迫转换成同类型的枚举常量赋给枚举变量:枚举常量、枚举类型的变量可进展算术运算、关系运算。枚举常量、枚举类型的变量可进展算术运算、关系运算。 对枚举类型实施算术、关系运算时,枚举值转换成整型值参与运对枚举类型实施算术、关系运算时,枚举值转换成整型值参与运算,结果为整型值。所以,假设要将结果赋给枚举变量,还要将结果算,结果为整型值。所以,假设要将结果赋给枚举变量,还要将结果转换成枚举值。转换成枚举值。 例如:例如:d1=d1+2; /d1=d1+2; /是错误的,由于结果为是错误的,由于结果为intint型。型。 需求将它强迫转换成枚举型:
18、需求将它强迫转换成枚举型: d1=(weekday)(d1+2);d1=(weekday)(d1+2);枚举类型的运用:枚举类型的运用: 枚举常量、枚举类型的变量可直接进展各种方式的关系运算。枚举常量、枚举类型的变量可直接进展各种方式的关系运算。 例如:例如: if(city1=3) if(city1=3) ; if(city2=Beijing)if(city2=Beijing); if(Shanghai=1);if(Shanghai=1); if(city1SUN); if(city1SUN);枚举类型变量不能直接进展输入枚举类型变量不能直接进展输入 例如:例如: cind1; /cind1
19、; /错误错误留意:枚举常量是常量,不是变量,所以不能对枚举常量进展赋值。 例如: 在上例中不能进展赋值 Shanghai=Beijing;枚举常量的值不是列举的字符串,其值为整数。编译器对赋给枚举变量的对象(数)进展类型检查,如类型不相符那么发出警告。 当类型相 同,而值超出此类枚举类型枚举常量范围时,也是正常的。/* 程序名:程序名:p5_1.cpp * 功能:功能: 枚举类型的运用,输入城市代号,输出城市称号枚举类型的运用,输入城市代号,输出城市称号 */#includeusing namespace std;enum city Beijing,Shanghai,Tianjin=6,Chongqing;void main() int n; coutI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国无机粉体行业市场现状分析及竞争格局与投资发展研究报告
- 行政管理的领导风格与组织文化及试题及答案
- 2025-2030年中国数码摄像行业发展现状及发展趋势与投资风险研究报告
- 行政管理专科绩效管理试题及答案探究
- 2025-2030年中国撬装机行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年中国推拉门行业发展现状及发展趋势与投资风险分析
- 护士执业考试的完整试题及答案
- 科学护理理念在实践中的体现试题及答案
- 设计人员驻场协议书
- 2025年福建省厦门鼓浪湾大酒店有限公司招聘7人笔试参考题库附带答案详解
- 解除原有合同协议书
- 医疗器械国产化战略政策与产业生态优化研究报告
- 司法辅警面试真题及答案
- iata第 66版危险货物规则(dgr 66th)
- 煤矿安全用电培训课件
- SPC CPK超全EXCEL模板完整版可编辑
- 水泥罐抗倾覆验算7页
- 中医师承学员报名申请表
- 农夫山泉广告表现报告
- 航海气象学知识点
- 绿色工厂评价指标评价表
评论
0/150
提交评论