第四章表达式没有什么特别难的地方,只要把书看完就可以了,所以放在一起。
第四章 表达式
关系运算符
- 一元运算符,二元运算符
- 组合运算符与运算对象
- 运算对象的转换:小整形通常会被提升
- 重载运算符 : << >>
- 左值与右值:当一个对象被用作右值时,用的是对象的值(内容),当一个对象被用作左值时,用的是对象的身份(内存中的位置)
当拿不准运算符顺序的时候,用括号来强制让表达式符合逻辑
如果改变了某个运算对象的值,在其他地方就不要使用该对象
算术运算符
- 一元正号 +
- 一元负号 -
- 乘法 *
- 除法 /
- 求余 %
- 加法 +
- 减法 -
布尔值不参与运算
bool b=ture;
bool a=-b;
a的值还是tureC++11规定除法向零取整,也就是说没有四舍五入,直接切除小数部分。
逻辑运算符
否 !
小于 <
小于或等于 <=
大于 >
大于或等于 >=
是否相等 ==
是否不等 !=
与 &&
或 ||
关系运算符与算术运算符用作算术和指针类型对象,逻辑运算符用作布尔类型。
成员访问运算符
ptr—> men 等价于 (*ptr).men
条件运算符
?:
cond?expr1:expr2
cond判断条件表达式,首先求cond的值,条件为真对expr1求值并返回,条件为假对expr2求值并返回。
位运算符
位运算符可以处理带符号或无符号,但一般符号位的处理依赖于机器,所以建议使用无符号类型。
左移运算符 << 在右侧插入为0的二进制
右移运算符 >> 在左侧插入为0的二进制
位求反运算符 ~ 将运算对象按位求反
位与运算符 &
位或运算符 |
sizeof
返回一条表达式或一个类型名所占的字节
- 对char类型表达式得到的结果是1
- 对引用类型计算的是引用对象占的空间大小
- 指针得到指针自己本身占用的空间大小
- 对解引用得到指针指向对象所占空间大小
- 对数组会全部执行一次并求和
- 对string和vector返回固定部分的大小
逗号运算符
逗号运算符先求逗号左边的值,再求逗号右边的值,整个表达式的值是右边的值。
逗号运算符与逗号表达式
类型转换
C++类型转换
类型转换详解