C Primer第五版總結之左值 右值

2021-10-25 10:17:33 字數 862 閱讀 7766

一、左值和右值

c++中使用物件的值(內容)物件作右值,使用物件的身份(在記憶體中的位置)物件作左值。

①左值可代替右值使用,右值不可當左值使用。

②左值當右值使用時,實際使用的是它的內容(值)。

使用關鍵字decltype,如果表示式(不是變數)求值結果是左值,得到引用型別。

函式返回

①引用返回左值,呼叫返回引用的函式得到左值,其他返回型別得到右值。

②可像使用其他左值一樣來使用返回左值函式的呼叫,可為返回型別是非常量引用的函式結果賦值。

運算子

算術運算子、邏輯和關係運算子

①運算物件和求值結果都是右值。

賦值運算子

①左側運算物件是可修改的左值,返回左側運算物件,求值結果是左值。

遞增遞減運算子

①作用於左值運算物件,前置版本將物件本身作為左值返回,後置版本將物件原始值的副本作為右值返回。

②迭代器遞增遞減運算子同上。

成員訪問運算子

①箭頭運算子作用於指標型別的運算物件,結果是左值。

②點運算子如果成員所屬物件是左值則結果是左值,成員所屬物件是右值則結果是右值。

條件運算子

①cond ? expr1 : expr2,如果兩個表示式都是左值或者能轉換成同一種左值型別,運算結果是左值,否則運算結果是右值。

逗號運算子

①返回右側表示式的值,若右側運算物件為左值,運算子結果為左值。

其他①內建解引用運算子、下標運算子求值結果為左值。

②迭代器解引用運算子、string和vector下標運算子求值結果為左值。

③取位址符作用於左值運算物件,返回指向運算物件的指標為右值。

C Primer第五版 練習11 33

練習11.33 實現你自己版本的單詞轉換程式。c primer第五版 練習11.33 2015 10 14 問題描述 練習11.33 實現你自己版本的單詞轉換程式。說明 把書上的程式自己再敲了一遍 include include include include include include usi...

如何學習C primer 第五版

c primer 第一次可以跳著看。關鍵是要盡快用起來,在使用中熟練,而不是在細節中迷失。以c primer第五版為例,第一遍讀的時候 part1也就是前七章,除了6.6,6.7節,都要通讀。尤其是第三章初步介紹了vector和string,簡直就是新手福音,搞定這兩個容器就能寫一些簡單的程式。pa...

C Primer 第五版習題1 2

練習1.3 include using namespace std int main cout hello,world 練習1.4 include using namespace std int main cout enter two number cin a b cout the product ...