第12章_枚举类型与位运算.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十二章 主要内容 12.1 枚举 12.2 类型定义 12.3 位运算符和位运算 概念 位运算是指按二进制位进行的运算。因为在系统软件中,常要处理二进制位的问题。 例如:将一个存储单元中的各二进制位左移或右移一位,两个数按位相加等。 位运算是C语言的低级语言特性,可以像汇编语言一样用来编写系统程序。 位运算符 1. “按位与”运算符(&) 按位与的用途: 2. “按位或”运算符(|) 3. “异或”运算符(∧) 4. “取反”运算符(~) 5. 左移运算符(<<) 5. 左移运算符(<<) 6. 右移运算符() 8. 不同长度的数据进行位运算 * §12.1 枚举类型 枚举:将变量的值一一列举出来,变量的值只限于列举 出来的值的范围内。 枚举类型的定义用enum 一般形式:enum 枚举名{枚举值表}; 如: enum weekday{sun,mon,tue,wed,thu,fri,sat};  定义变量: enum weekday workday,week-day; enum{sun,mon,tue,wed,thu,fri,sat}workday; enum weekday{sun,mon,tue,wed,thu,fri, sat} workday; 变量值只能是sun到sat之一 枚举元素 枚举常量 §12.1 枚举类型 说明: 在C编译中,对枚举元素按常量处理,故称枚举 常量。它们不是变量,不能对它们赋值。 例: sun=5; mon=2; ? (2) 枚举元素作为常量,它们是有值的,C语言编译 按定义时的顺序使它们的值为0,1,2… (3) 枚举值可以用来对枚举元素作判断比较。 比较规则:序号大者为大。 例:在上例中, monsun §12.1 枚举类型 (4) 只能把枚举元素赋予枚举变量,不能把元素的值 直接赋给一个枚举变量。 例: a=sun;正确 a=0; 错误 a=enum weekday(0); 其意义是将顺序号为0的枚举元素赋予枚举变量a。 (5) 枚举元素的值也可以人为改变,在定义时由程序 指定。 例: enum weekday{sun=7,mon=1,tue,wed, thu,fri,sat}; §12.2 定义类型(typedef ) 用typedef声明新的类型名来代替已有的类型名 声明INTEGER为整型 typedef int INTEGER 则: INTEGER a,b; 等价于 int a,b; 用typedef定义的一般形式为: typedef 原类型名 新类型名 §12.2 定义类型(typedef ) 优点: 用typedef定义数组、指针、结构等类型,使程序书写简单而且意义更为明确,增强了可读性。 用typedef定义类型的方法 ① 先按定义变量的方法写出定义体(如:int i)。 ② 将变量名换成新类型名(例如:将i换成COUNT)。 ③ 在最前面加typedef (例如:typedef int COUNT)。 ④ 然后可以用新类型名去定义变量。 §12.2 定义类型(typedef ) 用typedef定义类型的方法(举例) ① 先按定义数组变量形式书写:int n[100]; ② 将变量名n换成自己指定的类型名: int NUM[100]; ③ 在前面加上typedef,得到 typedef int NUM[100]; ④ 用来定义变量:NUM n; §12.2 定义类型(typedef ) 说明: 用typedef可以声明各种类型名,但不能用 来定义变量。 (2) 用typedef只是对已经存在的类型增加一个类型名, 而没有创造新的类型。 (3) 当不同源文件中用到同一类型数据时,常用 typedef声明一些数据类型,把它们单独放在一个文件 中,然后在需要用到它们的文件中用#include命令把 它们包含进来。 §12.2 定义类型(typedef ) 说明: (4) typedef与#define有相似之处,例如: typedef int COUNT; #define COUNT int的作用都是 用COUNT代表int。但事实上,它们二者是不同的。 #define是在预编译时处理的,它只能作简单的字符串替换; 而typedef是在编译时处理的。实际上它并不是 作简单的字符串替换,而是采用如同定义变量的方法 那样来声明一个类型 §12.3 位运算 运算符 含义

文档评论(0)

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

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

1亿VIP精品文档

相关文档