资源描述:
《C++程序设计教程 第12章 枚举类型、位运算》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、枚举定义枚举定义:变量的取值是有限的、固定的;如一周只有七天,一年只有十二个月。枚举是一个整型符号常量的集合。枚举类型定义:enum枚举类型名{枚举值表};如:enumweek{sun,mon,tue,wed,thu,fri,sat};enumweek{sat=6,sun,mon=1,tue,wed=5,thu,fri};枚举值默认值从0开始递增如果进行初始化,后面的枚举常量会以初始化的值进行递增,直到遇到另一个枚举常量初始化为止。枚举类型变量的定义方法一:enum枚举类型名变量名表;Enumweekw1,
2、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,%d”,w1,w2);则输出结果是多少?1,6typedef类型定义1.含义:可以为数据类型取别名,别名的作用和数据类型的作用一样。格式:typedef类型名标识符;含义:定义标识符是类型名的别名typedefintINTEG
3、ER;INTEGERa,b,c;作用与inta,b,c;一样2021/9/216枚举编程举例口袋中有红、黄、蓝、白、黑5种颜色的球若干个。每次从口袋中先后取出3个球,问得到3种不同颜色的球的可能取法,输出每种排列的情况。球只能是5种色之一,而且要判断各球是否同色,应该用枚举类型变量处理。设取出的球为i,j,k。根据题意,i、j、k分别是5种色球之一,并要求i!=j!=k。可以用穷举法,即一种可能一种可能的试,看哪一组符合条件。2021/9/217用typedef说明类型的步骤1)先用定义变量的方法写出定义体
4、。2)把变量名换成新类型名。3)在最前面加上typedef。4)已定义完新类型名,可用此新类型名去定义变量。练习定义float类型的别名为REAL;并用别名定义两个变量a,b;定义结构体struct{intmonth,day,yesr;}的类型别名为DATE;并用别名定义结构体变量birthday.定义枚举enumdate={year,month,day}的类型别名为DATE;并用别名定义两个枚举变量a=month,b=year;2021/9/219Typedef练习:定义长度为100的整型数组inta[1
5、00];的类型别名为NUM;并用别名定义一个数组变量n;定义字符指针char*ss的别名为STRING;并用别名定义两个字符指针变量p,q。2021/9/2110typedef举例:typedefintINTEGER;INTEGERi,j;--基本类型typedeffloatREAL;REALa,b;--基本类型typedefstruct(union)---结构体(共用体){intmonth,day,yesr;}DATE;DATEbirthday,*p;typedefenumdate={year,month
6、,day}DATE;DATEa=month,b=year;typedefintNUM[100];NUMn;--数组typedefchar*STRING;STRINGp,s[10];--指针typedefint(*POINTER)();POINTERp1,p2;--函数指针2021/9/2111typedef优点:用typedef可以声明各种类型名,但不能用来定义变量。用typedef声明数组类型,字符串类型,结构类型后,使用会比较方便;用typedef只是对已经存在的类型增加一个类型名,没有创造新的类型。
7、使用typedef有利于程序的通用与移植。如将Inta,b,c;改为longa,b,c;如果程序中多处用Int定义变量,则要改动多处。如果用typedef定义类型:typedefintINTEGER;后,在程序中所有整型变量都用INTEGER定义。改变时,只需把typedefintINTEGER;改变为typedeflongINTEGER;即可2021/9/2112位运算共有六种运算符>>按位右移(双目)11(→)<<按位左移(双目)11(→)&按位与(双目)8(→)∧按位异或(双目)7(→)¦按位或(双目
8、)6(→)~按位反(单目)14(←)位运算符功能优先级结核性注意:1.位运算是对二进制的位进行运算2.只能对int型、char型和long型进行位运算2021/9/2113真值表aba∧b~a~b00011011101010111000真值表aba∧ba&ba¦b00000011011010111011运算规律真值表位运算2021/9/2114左移运算左移功能:把<<左边的运算数的各个二进位全部左移若干位,由<<