當(dāng)前位置:
首頁(yè) >
C++ Primer 5 CH4 表达式
發(fā)布時(shí)間:2023/12/13
27
豆豆
生活随笔
收集整理的這篇文章主要介紹了
C++ Primer 5 CH4 表达式
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
4.1 基礎(chǔ)
- 函數(shù)調(diào)用也是一種特殊的運(yùn)算符,它對(duì)運(yùn)算對(duì)象的數(shù)量沒有限制。
- C++ 的表達(dá)式要么是左值,要么是右值。左值可以位于賦值語(yǔ)句的左邊,右值則不可以。
- 當(dāng)一個(gè)對(duì)象被用作右值的時(shí)候,用的是對(duì)象的值;當(dāng)對(duì)象被用作左值的時(shí)候,用的是對(duì)象的身份。
【mark】 - 優(yōu)先級(jí)規(guī)定了運(yùn)算對(duì)象的組合方式,但是沒有說明運(yùn)算對(duì)象的求值順序,一般不會(huì)明確指定求值順序。
- 對(duì)于沒有指定執(zhí)行順序的運(yùn)算符,如果表達(dá)式指向并修改了同一個(gè)對(duì)象,將會(huì)引發(fā)錯(cuò)誤并產(chǎn)生未定義的行為。
4.2 算術(shù)運(yùn)算符
- 算術(shù)運(yùn)算符的運(yùn)算對(duì)象和求值結(jié)果都是右值。
- 在表達(dá)式求值之前,小整數(shù)類型的運(yùn)算對(duì)象被提升成較大的整數(shù)類型,所有運(yùn)算對(duì)象最終會(huì)轉(zhuǎn)換成同一類型。
- 一元正(負(fù))號(hào)運(yùn)算符作用于一個(gè)指針或者算數(shù)值時(shí),返回運(yùn)算對(duì)象(取負(fù))的提升后的副本。
- m = (m / n) * n + m % n,則 m % n 符號(hào)與 m 相同。
4.3 邏輯和關(guān)系運(yùn)算符
- 邏輯和關(guān)系運(yùn)算符的運(yùn)算對(duì)象以及求值結(jié)果都是右值。
- 相等性測(cè)試與布爾字面值
4.4 賦值運(yùn)算符
- 賦值運(yùn)算符的左側(cè)對(duì)象必須是一個(gè)可修改的左值。
- 賦值運(yùn)算的結(jié)果是它的左側(cè)對(duì)象,并且是一個(gè)左值,結(jié)果的類型是左側(cè)運(yùn)算對(duì)象的類型。
- 賦值運(yùn)算符滿足右結(jié)合律。
4.5 遞增和遞減運(yùn)算符
- 遞增和遞減運(yùn)算符有兩種形式:前置版本 ++i 和后置版本 i++。這兩種運(yùn)算符必須作用于左值運(yùn)算對(duì)象,前置版本將對(duì)象本身作為左值返回,后置版本將對(duì)象原始值的副本作為右值返回。
- 除非必須,否則不用遞增和遞減運(yùn)算符的后置版本。
4.6 成員訪問運(yùn)算符
- ptr->mem == (*ptr).mem
4.7 條件運(yùn)算符
4.8 位運(yùn)算符
- 位運(yùn)算符的運(yùn)算對(duì)象如果是“小整型”,則會(huì)被自動(dòng)提升為整數(shù)類型。
- 位運(yùn)算符如何處理帶符號(hào)數(shù)的符號(hào)位是未定義的,因此建議僅將位運(yùn)算符用于處理無符號(hào)數(shù)。
- 移位運(yùn)算符(IO運(yùn)算符)滿足左結(jié)合律。
sizeof 運(yùn)算符
- sizeof 運(yùn)算符返回一條表達(dá)式或者一個(gè)類型名字所占的字節(jié)數(shù),返回 size_t 類型的常量表達(dá)式。
- sizeof 運(yùn)算符滿足右結(jié)合律。
- 在 sizeof 的運(yùn)算對(duì)象中解引用一個(gè)無效指針是安全的,因?yàn)橹羔槢]有被真正使用。
- 對(duì)數(shù)組執(zhí)行 sizeof 運(yùn)算得到整個(gè)數(shù)組的大小,對(duì) sting 或 vector 執(zhí)行 sizeof 運(yùn)算只返回該類型固定部分的大小。
4.10 逗號(hào)運(yùn)算符
- 逗號(hào)運(yùn)算符先對(duì)左側(cè)的表達(dá)式求值,然后將結(jié)果丟棄掉,再對(duì)右側(cè)的表達(dá)式求值,返回右側(cè)的結(jié)果。
4.11 類型轉(zhuǎn)換
- 算術(shù)轉(zhuǎn)換:運(yùn)算符的運(yùn)算對(duì)象將轉(zhuǎn)換成最寬的類型。
- 整型提升:轉(zhuǎn)換后的類型要容納原類型所有可能的值。
- 如果一個(gè)運(yùn)算對(duì)象是無符號(hào)類型,另一個(gè)是帶符號(hào)類型:
無符號(hào)類型不小于帶符號(hào)類型:帶符號(hào)類型轉(zhuǎn)成無符號(hào)類型;
帶符號(hào)類型大于無符號(hào)類型:轉(zhuǎn)換結(jié)果依賴于機(jī)器; - 指針的轉(zhuǎn)換
常量整數(shù)值 0 或者字面值 nullptr 能轉(zhuǎn)換成任意指針類型;
指向任意非常量的指針能轉(zhuǎn)成 void;
指向任意對(duì)象的指針能轉(zhuǎn)成 const void; - 轉(zhuǎn)換成布爾類型:指針或算術(shù)值為 0,結(jié)果為 false,否則為 true。
- 轉(zhuǎn)換成常量:允許將指向非常量的指針(引用)轉(zhuǎn)換成相應(yīng)的常量指針(引用)。
- 類類型能定義由編譯器自動(dòng)執(zhí)行的轉(zhuǎn)換,不過編譯器每次只能執(zhí)行一次類類型的轉(zhuǎn)換。
- 強(qiáng)制轉(zhuǎn)換
- static_cast
- const_cast
- reinterpret_cast
轉(zhuǎn)載于:https://www.cnblogs.com/eathen/p/6599498.html
總結(jié)
以上是生活随笔為你收集整理的C++ Primer 5 CH4 表达式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 全国756亿信用卡贷款逾期!为什么卡奴这
- 下一篇: 浦发信用卡透支取现是什么?这三个事项要注