您的位置:首页 > 编程语言 > C语言/C++

C++ Primer 读书笔记 – 第六章

2015-05-13 18:36 288 查看
 


C++ Primer 读书笔记 – 第六章

分类: C++ pirmer 读书笔记2010-09-20
11:10 56人阅读 评论(0) 收藏 举报

读书c++datenullfile

 第6章 语句

㈠ 简单语句

⒈ 表达式语句(expression_r statement)

一个表达式加上结尾的分号,执行时导致该表达式被求值

⒉ 空语句(null statement)

只由一个单独的分号组成,当语法上需要一个语句但逻辑上并不需要时使用

⒊ 声明语句

用于声明或定义对象或类

㈡ 复合语句

⒈ 复合语句(compound statement)又被称为块(block),是用一对花括号{}括起的(可能为空的)语句序列

⒉ 通常用于语法规则要求使用单个语句但程序逻辑需要多个语句时

⒊ 块标示了一个作用域,在块中引入的名字只能在其内部访问

㈢ 控制流语句

注:作为语句控制结构的一部分定义的变量,仅在该语句内可见

⒈ 条件分支结构

⑴ if 语句

关于 else-if 匹配的二义性问题: else 匹配给最后出现尚未匹配的 if

⑵ switch 语句

① switch 在计算表达式的值后跳转到匹配的标号处(无匹配则跳转至 default),并从该点开始一直执行下去,

直至 switch 语句结束或遇到 break 语句

② switch 求解表达式的结果须为整型,每个 case 标号的值也须为各不相同的整型常量表达式

③ switch 内部的变量定义

· 可以在 switch 求解的表达式中定义和初始化变量

· 为防止跳过变量定义,只允许在最后一个标号后定义变量

· 也可以引入块语句,在其中定义变量

⒉ 循环

⑴ while 语句

注:循环条件中定义的变量在每次循环时都要经历创建和撤销的过程

⑵ for 循环语句

注:语句头中的初始化语句、循环条件和表达式三者都可以省略

循环条件省略表示永远为 true

⑶ do while 语句

注:不能在循环条件中定义变量

⒊ break 语句

用于结束最近的外围 whiledo whilefor 或 switch 语句,并在该语句后继续执行

⒋ continue 语句

导致最近的外围循环语句(forwhiledo while)正在进行的这次迭代提前结束

⒌ goto 语句

⑴ goto 语句提供了函数内部的无条件跳转,实现从 goto 语句跳转到同一函数内某个带标号的语句

除非有足够理由,应避免使用 goto 语句

⑵ 在任何语句前提供一个标识符和冒号,就得到一个带标号的语句(labeled statement)

标识符: 语句

使用 goto 语句跳转到该语句: goto 标识符;

由于这里的标识符只能用作 goto 的目标,因此可以与其它类型的标识符(如变量名)同名

⑶ goto 语句不能跨越变量的定义语句向前跳转

若确实需在 goto 和跳转目标位置间定义变量,则须定义在块中

⒍ trycatch 语句和 throw 表达式

用于异常处理

⒎ return 语句

用于结束当前函数,返回函数被调用处继续执行

⒍⒕ 使用预处理器进行调试

⒈ 使用 NDEBUG 预处理变量实现有条件的调试代码(类似头文件保护符)
#ifndef NDEBUG
#define NDEBUG
// 调试代码
#endif

如果定义了 NDEBUG 就不执行调试代码

⒉ 使用 NDEBUG 预处理变量以及 assert 预处理宏

定义在头文件cassert中,常用来检查不可能发生的状况,形式为

assert(表达式)

如果表达式结果为 false, assert 输出信息并终止程序

如果定义了 NDEBUG 预处理变量,assert 将被忽略,不会产生任何运行时代价

⒊ 预处理器定义了四种在调试时有用的常量
__FILE__ 文件名
__LINE__ 当前行号
__TIME__ 编译时间
__DATE__ 编译日期
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ 读书笔记