Chinaunix首页 | 论坛 | 博客
  • 博客访问: 427105
  • 博文数量: 71
  • 博客积分: 26
  • 博客等级: 民兵
  • 技术积分: 1246
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-23 14:46
个人简介

linux --- 一切皆文件

文章分类

全部博文(71)

文章存档

2021年(1)

2019年(2)

2018年(4)

2017年(7)

2016年(11)

2015年(1)

2014年(2)

2013年(33)

2012年(10)

分类: C/C++

2013-05-18 22:34:11

枚举三例

1:众所周知,枚举类型是一个常量整数值的列表,默认里面的值会从0开始递增利用这个特性可以有以下用法:

当有一个数组,保存某个学生的每科的成绩,比如现在只有两门课程,可以把数组定义为 score[2],
并且在程序中广泛应用这个数组,如果成绩科目编程了4个等等,这时候改起来就有点麻烦。使用enum就可以方便解决。
enum
score {CHINESE,MATH,ENGLISH,ALL_COURSE};
数组:score[ALL_COURSE]; 每当增加科目的时候只要增加enum score里,ALL_COURSE自动会增加,不用进行大的改动。


2:限制变量的取值范围:
enum boolean {NO,YES};
enum boolean a;

3:枚举名的值是可以自己定义的
enum something { ONE = 1,TWO = 2,THREE};
在自己定义之后那些没有定义的值将会以之前那个值为基数自增1。

const 限定词

const只限定通过这个变量名去访问。通过指针同样可以访问并修改,但是在优化的时候会有问题,慎用~!

!!a ;这个写法的含义:

1:任何一个正数通过!a都会成为0,!!a,就成为了!0,就为1了
2:如果a 是0,!a,为1,!!a还是为0
这样就可以保证,不管是真是假,经过!!a之后的值不是0就是1,方便往后的判断。

位运算:<< >>

<< 左移运算符,右边不够的位用0进行不齐
>> 右移运算符,1:如果是正数,那么左边不够的位用0不齐
                          2:如果是负数,有两种情况 补最高位和补0

~ & |
例:
10110010010 有这么一个一串二进制,对低3位进行置位,清零,取位,取反

置位: 10110010010 | (1<<3)
清零:
10110010010 & ~(1<<3)
取位: 10110010010 &(1<<3)
取反: 10110010010 ^(1<<3)  


三目运算符:

c = a > b ? a : b ,如果a>b为真,则返回a,否则返回b



阅读(1021) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~