代码改变世界

C++学习笔记控制流程 2014-9-25

2014-09-25 19:24  想打架的蜜蜂  阅读(158)  评论(0)    收藏  举报

1、程序语句的执行顺序称为控制流程。

2、运算符执行顺序是:首先执行!,然后对<等关系操作符进行求值,然后对&&进行求值,然后对||进行求值,==运算符也先于&&

3、优先级规则:从上至下优先级规则

一元操作符+,—,++,——和!

二元算术操作符:*,/,%

二元算术操作符:+,—

布尔运算:<,〉,<=,>=

布尔运算:==,!=

布尔运算&&

布尔运算||

4、短路求值

对于这种&&表达式,c++发现第一个子表达式为假,整个表达式就为假,而不需要再去算第二个子表达式的值。称为短路求值。

C++中有时将整数当作布尔型用,具体来说,就是将所以非0的数字当作true,将0当作false

5、陷阱:将布尔表达式值转换成int值

假如,你想用一个if-else表达式,只要int类型的变量time不大于变量limit的值,就希望表达式为true,如下所示:

if(!time>limit).......

听起来没问题,time不大于limit,但是确实有误,但是编译器不会显示一条错误消息,假定time的值为36,那么(!time)是什么意思?任何非零整数都被转成true,0被转成false,所以!36被解释成not true,也就是false,由于要和int值进行比较,所以false会被转换回0.所以这么写if(!(time>limit)),或者不用!。

6、枚举类型

枚举类型是其值由一系列int类型的常量来定义的一种数据类型,定义枚举类型时,可使用任何int值,并可在枚举类型中定义任何数量的常量。如:

enum Direction

{

north=1,

south=1,

east=2,

west=3

};//注意有分号

从中可以看到,在一个枚举类型中,两个或者更多的以命名常量可接受同一个int值,如果不指定任何数值,枚举类型的标识符就会被自动指派一系列连续的值,这些值是从0开始,如:

enum Direction

{

north=0,

south=1,

east=2,

west=3

};

他等价于:

enum Direction

{

north,south,east,west

};

如果你只部分初始化,如

enum Direction

{

north=1,south,east=-3,west

}

那么south将获得值2,west将获得值-2。

7、switch

执行一个switch语句时,会在多个分支中选择一个,具体由关键字switch之后的圆括号中提供的一个控制表达式来决定,switch语句的控制表达式必须返回以下值之一:布尔值、enum常量、某种整数类型、或者一个字符。

break语句由break语句加上分号组成,