一、左值和右值
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 ...