· 表达式由一个或多个运算对象组成,对表达式求值将得到一个结果。

· 字面值和变量是最简单的表达式

· 把一个运算符和一个或多个运算对象组合起来可以得到较复杂的表达式

· 表达式是C++中最低级别的计算

4.1 基础

4.1.1 基本概念

C++定义了一元运算符、二元运算符与一个三元运算符(条件运算符)。此外函数调用也是一种特殊的运算符,它对运算对象的数量没有限制

组合运算符和运算对象

对于含有多个运算符的复杂表达式来说,理解其含义首先需要理解运算符的优先级、结合律以及运算对象的求值顺序

运算对象转换

小整数类型(如bool、char、short等)通常会被提升(promoted)成较大的整数类型,主要是int

重载运算符

重载运算符可以为已存在的运算符赋予另一层含义。但需要注意的是,运算对象的个数、运算符的优先级和结合律都是无法改变的

左值和右值

需要右值的地方可以使用左值来代替,但是不能把右值当成左值使用,当一个左值被当作右值使用时,实际使用的是它的内容(值),以下为几种常见的左值使用场景: