2017/9/3

来源:互联网 发布:软件过了试用期 编辑:程序博客网 时间:2024/06/05 17:30

枚举类型学习:

当我们编程的时候,一种变量的可能取值是有限的,有时候我们需要对它可能取得每一个数值赋予一个名称。这个时候如果我们用#define宏定义来实现 就会造成宏定义过多,代码松散,不宜阅读。

那么这就需要我们学习下枚举类型

枚举是一种数据类型:

格式: enum typename{ValueName1 ValueName2 ValueName3};

例如 enum week{ Mon=1,Tue=2,Wen=3,Thu=4,Fri=5,Sat=6,Sun=7};

加入我们列举的数据有递增性质的话,我们可以这样:

 enum week{ Mon=1,Tue,Wen,Thu,Fri,Sat,Sun};

枚举是一种数据类型 ,因此我们可以定义变量,同时可以一边给出数据定义,一边给出变量的定义:

enum week{ Mon=1,Tue,Wen,Thu,Fri,Sat,Sun},a,b,c;   变量被定义以后,我们可以对这些变量进行赋值,注意赋值的格式:

enum week a=Mon,b=Tue;   注意对于变量a赋值,只能是Mon ,Tue这几个固定的数值,不能是其他值了,否则编译器会提示初始化错误

上面的Mon Tue 的作用域都是全局的,别且是常量,因此我们不能够再次对他们赋值,只能够将他们的值赋值给其他变量,正是由于他是个常量,所以可以和宏一样跟在case 语句后面,但是它和宏不同的是,宏是在编译前进行的预处理,而他是一个编译的时候直接储存在代码区,这里应该注意的是,因为Mon,Tue,是常量数据,因此不能将他们储存在数据区,因此我们无法利用&符号来提取他们的地址。&只能提取变量的地址。

位操作的学习笔记:


9的2进制:

0000 0000 0000 1001
它的反码:

1111 1111 1111 0110

它的补码:

1111 1111 1111 0111

注意在C语言中规定,用补码表示原数的负数值

左移 右移就是往左或者移动几位,具体的操作如下:

移动的方法如下:如果高位是1 那么移动后就自动补1,如果高位时0 那么移动后就自动补0。


原创粉丝点击