第4章 表達(dá)式
1. decltype作用于左值對(duì)象時(shí),返回的是該對(duì)象的援用類型. 作用于右值對(duì)象時(shí),返回的是該對(duì)象的類型.
2. 求值順序.
C++中只有&& || ?: 和, 4種運(yùn)算符是先左后右求值的.
3. 1元正負(fù)號(hào)運(yùn)算符作用于數(shù)值:
會(huì)提升當(dāng)前數(shù)值的類型,比如short變成int型
4. m%(-n) 與 (-m)%n 與 (-m)%(-n) 的結(jié)果分別是:
注意: 模的正負(fù)號(hào)沒有任何影響, m的正負(fù)號(hào)決定結(jié)果的正負(fù).
5. 關(guān)系運(yùn)算符滿足左結(jié)合律:
6. 遞增遞減運(yùn)算符(如++x,x++)在甚么時(shí)候是不可替換(成x+1的情勢(shì))?
在用于那些不支持算術(shù)運(yùn)算的迭代器時(shí),是必須的.
7. ++,--運(yùn)算符,前置版本返回左值對(duì)象,后置版本返回右值對(duì)象.
8. 后置遞增運(yùn)算符的優(yōu)先級(jí)高于解援用運(yùn)算符
9. 運(yùn)算對(duì)象可按任意順序求值:
10. 條件運(yùn)算符滿足右結(jié)合律:
11. 位運(yùn)算符強(qiáng)烈建議只用于處理無符號(hào)數(shù)或正數(shù),由于符號(hào)位如何處理是與機(jī)器有關(guān)的.
12. struct結(jié)構(gòu)體類的對(duì)象是需要對(duì)齊1個(gè)字大小的.
13. sizeof運(yùn)算符并不去計(jì)算其運(yùn)算對(duì)象的值,所以在sizeof中解援用1個(gè)無效的指針是合法的.
sizeof作用于 string 和vecvtor時(shí),只返回其固定部份的字節(jié)大小,不會(huì)對(duì)其內(nèi)容求字節(jié)大小.
14. 逗號(hào)運(yùn)算符的求值順序是從左到右,且其返回值是右側(cè)表達(dá)式的值.所以如果右側(cè)表達(dá)式的返回值是左值,那末逗號(hào)運(yùn)算符的返回值也是左值. 注意b=4返回b的援用(即左值)
15. void* 能寄存任何非常量對(duì)象的地址:
16. const_cast<>()會(huì)改變(且只能改變)運(yùn)算對(duì)象的底層const屬性.(只有指針和援用有底層const)