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

 

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

分类: C++ pirmer 读书笔记   56人阅读  评论(0)  收藏  举报

 第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__ 编译日期

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值