已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
,枚举定义,枚举定义:变量的取值是有限的、固定的;如一周只有七天,一年只有十二个月。枚举是一个整型符号常量的集合。 枚举类型定义: enum 枚举类型名 枚举值表 ; 如: enum week sun, mon, tue, wed, thu, fri, sat ; enum week sat=6,sun, mon=1, tue, wed=5, thu, fri;,枚举值默认值从0开始递增,如果进行初始化,后面的枚举常量会以初始化的值进行递增,直到遇到另一个枚举常量初始化为止。,方法一:enum 枚举类型名 变量名表; Enum week w1,w2; 方法二:定义类型的同时定义变量 enum week Sun, Mon, Tue, Wed, Thu, Fri, Sat w1,w2;,枚举变量的初始化,enum week sun, mon, tue, wed, thu, fri, sat w1,w2; w1=mon; w2=sat; printf(“%d,%dn”,w1,w2); 则输出结果是多少?,1,6,typedef类型定义,1.含义:可以为数据类型取别名,别名的作用和数据类型的作用一样。 格式: typedef 类型名 标识符; 含义:定义标识符是类型名的别名 typedef int INTEGER; INTEGER a,b,c;作用与int a,b,c;一样,2019/6/6,6,枚举编程举例,口袋中有红、黄、蓝、白、黑5种颜色的球若干个。每次从口袋中先后取出3个球,问得到3种不同颜色的球的可能取法,输出每种排列的情况。 球只能是5种色之一,而且要判断各球是否同色,应该用枚举类型变量处理。 设取出的球为i,j,k。根据题意,i、j、k分别是5种色球之一,并要求i!=j!=k。可以用穷举法,即一种可能一种可能的试,看哪一组符合条件。,2019/6/6,7,用typedef说明类型的步骤,1) 先用定义变量的方法写出定义体。 2) 把变量名换成新类型名。 3) 在最前面加上typedef。 4) 已定义完新类型名,可用此新类型名去定义变量。,练习,定义float类型的别名为 REAL;并用别名定义两个变量a,b; 定义结构体struct int month,day,yesr;的类型别名为DATE;并用别名定义结构体变量birthday. 定义枚举 enum date=year,month,day的类型别名为 DATE;并用别名定义两个枚举变量a=month,b=year;,2019/6/6,9,Typedef练习:,定义长度为100的整型数组int a100;的类型别名为 NUM ;并用别名定义一个数组变量n; 定义字符指针 char *ss的别名为STRING ;并用别名定义两个字符指针变量p,q。,2019/6/6,10,typedef举例:,typedef int INTEGER; INTEGER i,j;-基本类型 typedef float REAL; REAL a,b; -基本类型 typedef struct(union) -结构体(共用体) int month,day,yesr; DATE; DATE birthday,*p; typedef enum date=year,month,day DATE; DATE a=month,b=year; typedef int NUM100; NUM n; -数组 typedef char *STRING; STRING p,s10; -指针 typedef int (*POINTER)(); POINTER p1,p2;-函数指针,2019/6/6,11,typedef优点:,用typedef可以声明各种类型名,但不能用来定义变量。用typedef声明数组类型,字符串类型,结构类型后,使用会比较方便; 用typedef只是对已经存在的类型增加一个类型名,没有创造新的类型。 使用typedef有利于程序的通用与移植。如将Int a,b,c;改为long a,b,c;如果程序中多处用Int定义变量,则要改动多处。如果用typedef定义类型: typedef int INTEGER;后,在程序中所有整型变量都用INTEGER定义。改变时,只需把typedef int INTEGER;改变为 typedef long INTEGER;即可,2019/6/6,12,位运算 共有六种运算符,注意:1.位运算是对二进制的位进行运算 2.只能对int型、char型和long型进行位运算,2019/6/6,13,运算规律,真值表,位运算,2019/6/6,14,左移运算,左移功能:把左边的运算数的各个二进位全部左移若干位,由右边的数指定移动的位数,高位丢弃,低位补0; 如a=3;a=a4;后,a=48; 如果左移时被舍弃的高位中不包含1,则左移1位相当于乘以2(扩大2倍);如1100 00002后变为0000 0000,被舍弃的高位中含有1,因此虽左移2位,值并没有扩大4倍。而0011 00002后变为1100 0000;被舍弃的高位中不包括1,所以值扩大4倍,2019/6/6,15,右移运算,右移功能:把左边的运算数的各个二进位全部右移若干位,由右边的数指定移动的位数,高位丢弃,低位补0; 如a=16;a=a2;后,a=4; 如果右移时被舍弃的低位中不包含1,则右移1位相当于除以2(缩小2倍);如000 11112后变为0000 0011,被舍弃的低位位中含有1,因此虽右移2位,值并没有缩小4倍。而0011 00002后变为0000 1100;被舍弃的低位中不包括1,所以值缩小4倍 如果高位为1,则右移时高位补1,高位为0,高位补0;,2019/6/6,16,实例:已知:int x=7,y=10,z=1;设字长为8位,求:,2 (0000 0111 & 0000 1010 = 0010) 1 (0000 0111 & 0000 0001 = 0001) 15 (0000 0111 0000 1010 = 1111) 11 (0000 1010 0000 0001 = 1011) 13 (0000 0111 0000 1010 = 1101) 8 ( 0000 0111 ) = 1111 1000 7 28 (0000 0111 2 = 0000 0010) 1 (0000 0111 2 = 0000 0001),x & y = x & z = x y = y z = x y = x = x = x2 = x2 =,2019/6/6,17,格式:sizeof (表达式或数据类型) 功能:求运算对象在内存中所占的字节数,求: printf(“%d,%dn”, sizeof ( int ), sizeof ( char ) );,五. sizeof 运算符,结果:2,1,求:printf(“%d“, sizeof(“ASTn01212“);,结果:10,2019/6/6,18,运算符小结,算术运算符: +,-,*,/,% 赋值运算符: = 关系运算符: ,=, , ,sizeof( ),(type),,2019/6/6,19,运算符的优先级,2019/6/6,20,5 本章小结,枚举类型是一种基本数据类型,而不是一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《国际货运代理》题集
- 《规范汉字书写传承中华文化之美》班会教案3篇
- 3.4.1 二次函数y=ax2+k与y=a(x-h)2的图象与性质 同步练习
- 【人教】期末模拟卷01【九年级上下册】
- 专项24-弧、弦、角、距的关系-重难点题型
- 特殊作业票管理制度
- 语法专题十六 主谓一致【考点精讲精练】-2023年中考语法一点通(学生版)
- 青花瓷的教案8篇
- 新生军训心得体会
- 暑假自我总结
- 广东省特种设备作业人员考试机构申请表
- 国开2024年秋《经济法学》计分作业1-4答案形考任务
- 2024新信息科技三年级第三单元:畅游网络世界大单元整体教学设计
- 2024-2025形势与政策:促进高质量充分就业 为中国式现代化建设提供有力支撑
- 知道网课智慧《设计创新思维》测试答案
- 生物入侵与生物安全智慧树知到期末考试答案章节答案2024年浙江农林大学
- 《公路工程集料试验规程》JTG-3432-2024考核试题及答案文档
- 中国农业银行贷后管理办法
- 生涯发展报告 (修改)
- 303093 池国华 《内部控制与风险管理(第3版)》思考题和案例分析答案
- 高、低压设备讲解知识
评论
0/150
提交评论