一:逗號運算子的定義:含有兩個運算物件,按照從左向右的順序依次執行求值,逗號運算子的真正結果是右側表示式的值。
二、算術轉換:把一種算術型別轉換成另外一種算術型別,算術轉換的規則定義了一套型別轉換的層次,其中運算子的運算對將轉換成最寬的型別。假如乙個運算物件的型別是long double,那麼不論另外乙個運算物件的型別是什麼都轉換成long double型,當表示式中既有浮點型也有整數型別時,整數值將轉換成相應的浮點型別。
三、陣列轉化成指標:在大多數用到陣列的表示式中,陣列自動轉化成指向陣列首元素的指標:
int ia [10]; //含有10個整數的陣列
int* ip =ia; //ia 轉換成指向陣列首元素的指標
四、指標的轉換:常量整數值0或者字面值nullptr能轉換成任意指標型別。
五、轉換成布林型別:存在一種從算術型別或者指標型別向布林型別自動轉換的機制。如果指標或者算術型別的值為0,轉換結果是false;否則轉換結果是true。
第四章 運算子過載
目錄定義 重新定義運算子的運算 實質是函式過載,把含有運算子的表示式轉換成對運算子函式的呼叫 可以過載為普通函式 成員函式 友元函式 多次過載時,根據實參型別決定呼叫哪個運算子函式 等號只能過載為成員函式 賦值語句和初始化語句的等號 含義不同,初始化語句需要用建構函式實現 同類賦值注意點 可能包含指...
第四章 運算子的本質
陣列是存在於人們頭腦中的乙個邏輯概念,而編譯器其實並不知道有陣列這個東西,它所知道的,只是運算子,當遇到運算子的時候,編譯器只是簡單地把它轉換為類似 a i j 這樣的等價表示式,之所以是這種表示式,如前幾章所述,是因為c語言的陣列實現本質上是陣列的巢狀。由於這種等價關係的存在,會產生一些古零精怪的...
第四章 運算子的本質
陣列是存在於人們頭腦中的乙個邏輯概念,而編譯器其實並不知道有陣列這個東西,它所知道的,只是運算子,當遇到運算子的時候,編譯器只是簡單地把它轉換為類似 a i j 這樣的等價表示式,之所以是這種表示式,如前幾章所述,是因為c語言的陣列實現本質上是陣列的巢狀。由於這種等價關係的存在,會產生一些古零精怪的...