C++Primer学习——4&5 表达式&语句

4 表达式

4.1 基础

当一个对象被用作右值的时候,用的是对象的值(内容);当对象被用作左值的时候,用的是对象的身份(在内存中的位置)。左值:内容;右值:内存位置

4.2 算术运算符

一元负号运算符bool b2 = -b; //b2是true!

运算符%俗称“取余”或“取模”运算符。其中参与取余运算的运算对象必须是整数类型

C++早期版本允许m%n的符号匹配n的符号,而且商向负无穷一侧取整。

在C++11新标准中已经被禁止使用了,除了-m导致溢出的特殊情况,其他时候(-m)/n和m/(-n)都等于-(m/n),m%(-n)等于m%n,(-m)%n等于-(m%n)

4.3 逻辑和关系运算符

**注意:**进行比较运算时除非比较的对象时布尔类型,否则不要使用布尔字面值true和false作为运算对象

4.5 递增和递减运算符

**注意:前置版本的递增运算符避免了不必要的工作,它把值加1后直接返回改变了的运算对象。而后置版本需要将原始值存储下来以便于返回这个未修改的内容。**如果我们不需要修改前的值,那么后置版本就是一种浪费

4.9 sizeof运算符

C++11新标准允许我,恶魔使用作用域运算符来获取类成员的大小。通常情况下只有通过类的对象才能访问到类的成员,但是sizeof运算符无须我们提供一个具体的对象,因为要想知道类成员的大小无须真的获取该成员

sizeof运算符的结果部分地依赖于其作用的类型:

  • 对char或者类型为char的表达式执行sizeof运算,得到1
  • 对引用类型执行sizeof运算得到被引用对象所占空间的大小
  • 对指针执行sizeof运算得到指针本身所占空间的大小
  • 对解引用指针执行sizeof运算得到指针指向的对象所占空间的大小,指针不需要有效
  • 对数组执行sizeof运算得到整个数组所占空间的大小,等价于对数组中所有的元素各执行一次sizeof运算并将所得结果求和。注意,sizeof运算不会把数组转换成指针来处理
  • 对string对象或vector对象执行sizeof运算只返回该类型固定部分的大小,不会计算对象中元素占用了多少空间

5 语句

5.4迭代语句

do while 语句应该再小括号包围起来的条件后面用一个分号表示语句结束

5.6 try语句块和异常处理

异常处理包括:

  • throw表达式,异常检测部分使用throw表达式来表示它遇到了无法处理的问题。我们说throw引发了异常
  • try语句块,异常处理部分使用try语句块处理异常。try语句块以关键字try开始,并以一个或多个catch子句结束。try语句块中代码抛出的异常通常会被某个catch子句处理。因为catch子句“处理”异常,所以他们也被称为异常处理代码
  • 一套异常类,用于在throw表达式和相关的catch子句之间传递异常的具体信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值