C++primer_第五章_语句_学习跟踪

来源:互联网 发布:linux nfs 挂载 编辑:程序博客网 时间:2024/05/09 01:13

1.        表达式末尾加上分号就变成表达式语句,表达式语句的作用就是执行表达式并丢弃掉求值结果;

2.        一个块就是一个作用域;

3.        C++规定else与离他最近的尚未匹配的if匹配;

4.        如果某个case标签匹配成功,将从该标签开始往后顺序执行所有case分支,除非程序显示地中断这一过程;

5.        switch内部变量定义时注意:c++规定,不允许跨过变量的初始化语句直接跳转到该变量的作用域内的另一个位置;

6.        for语句头中定义的对象只在for循环内可见,和其他声明一样,可以定义多个对象,但for循环只能有一条声明语句,因此,所有变量的基础类型必须相同;

7.        范围for语句可以遍历容器或其他序列的所有元素,这些序列可为:花括号括起来的初始值列表、数组、vector或string等类型的对象,这些类型的共同特点是拥有能返回迭代器的begin和end成员;

8.        由于在范围for中预存了序列end()的值,一旦在序列中添加或删除元素,end函数的值就有可能变的无效;

9.        因为do while先执行语句或块,后判断条件,所以不允许在条件部分定义变量;

10.     goto语句不能将程序的控制权从变量的作用域之外转移到作用域之内,但向后跳过一个已经执行的定义时合法的。跳回到变量定义之前以为这系统将销毁该变量,然后重新创建它;

11.     异常检测部分使用throw表达式来表示它遇到了无法处理的问题,throw引发了异常;

12.     异常处理部分使用try语句处理异常。try语句块以关键字try开始,并以一个或多个catch子句结束。try语句块中代码抛出的异常通常会被某个catch子句处理。因为catch子句处理异常,所以它们也被称作异常处理代码;

13.     程序在遇到抛出异常的代码前,如果已经经过了多个try语句块,则寻找处理代码的过程与函数调用链刚好相反,沿着程序的执行路径逐层回退,知道找到适当的catch子句为止。如果最终还是没能找到匹配的catch,程序将转到名叫terminate的标准库函数。将导致程序非正常退出。


0 0
原创粉丝点击