C++Primer第4章 表达式
4.1 基础
4.1.1 基本概念
C++定义了运算符:
- 一元运算符:作用于一个运算对象的运算符,如取地址符(&)和解引用符(*)
- 二元运算符:作用于两个运算对象的运算符,如相等运算符(==)和乘法运算符(*)
- 三元运算符:三目运算符
- 函数调用也是一种特殊的运算符,对运算对象没有限制
C++语言定义了运算符作用于内置类型和复合类型的运算对象时所执行的操作。当运算符作用域类类型的运算对象时,可以重载运算符。我们使用重载运算符时,其包括运算对象的类型和返回值的类型,都是由运算符定义的,但是,运算对象的个数、运算符的优先级和结合律都是无法改变的。
C++的表达式要不然是右值,要不然就是左值:
- 在C语言里:左值可以位于赋值语句的左侧,右值则不能
- 在C++语言里:
- 当一个对象被用作右值的时候,用的是对象的值(内存)
- 当对象被用作左值的时候,用的是对象的身份(在内存中的位置)
不同运算符对运算对象的要求各不相同,有的需要左值运算对象,有的需要右值运算对象。返回值也有差异,有的得到左值结果,有的得到右值结果。
左值可以当右值使用,这时候使用的是它的内容(值)&#