## 第4章 表達式
### 4.1.1 基本概念
decltype(左值表達式)得到的是引用類型。
### 4.1.3 求值順序
運算對象的求值順序與優先級和結合律無關。
以下4種運算符明確規定了運算對象的求值順序:
符號 | 含義
--- | ---
&& | 邏輯與
\|\| | 邏輯或
?! | 條件運算符
, | 逗號運算符
### 4.2 算術運算符
一元正號運算符可作用于指針,返回運算對象值的一個(提升后的)副本。
由于整型提升的影響,布爾值不應該參與運算。
C++11新標準規定整型除法的商一律向0取整。
根據取余運算的定義,即表達式`(m / n)* n + m % n == m`為真(m和n是整數且n非0),即如果m%n不等于0,則它的符號和m相同。故除了-m導致溢出的特殊情況,`m % (-n)`等于`m % n`,`(-m) % n`等于`-(m % n)`。
### 4.9
對引用類型執行**sizeof**運算得到被引用對象所占空間的大小。
對string對象或vector對象執行**sizeof**運算只返回該類型固定部分的大小,不會計算對象中的元素占用了多少空間。
### 4.11.3
**const_cast**只能改變運算對象的底層const。只有**const_cast**能改變表達式的常量屬性。