4.21 編寫一段程式,使用條件運算子從vector< int > 中找到哪些元素的值是奇數,然後將這些奇數的值翻倍。
0;}ifelse更容易理解,條件運算子更簡潔。
4.23修改語句
string s = "word";
string p1 = s + s[s.size() - 1] == 's' ? "" : "s";//err +優先順序高於==
string p1 = s + (s[s.size() - 1] == 's' ? "" : "s");//p1 = 「words」
4.24本節的示例程式是將成績劃分成high pass、pass和fail三種,它的依據是條件運算子滿足右結合律。假如條件運算子滿足的是左結合律,求值過程是怎樣的?
先判斷grade < 60,false再判斷grade > 90;
第四章 表示式 4 7 條件運算子
條件運算子?允許把簡單的if else邏輯嵌入到單個表示式中,條件運算子按照如下形式使用 cond expr1 expr2 其中cond是判斷條件的表示式,而expr1和expr2是兩個型別相同或可能轉換為某個公共型別的表示式。條件運算子的執行過程 求cond的值 如果條件為真對expr1求值並返回...
第四章 運算子過載
目錄定義 重新定義運算子的運算 實質是函式過載,把含有運算子的表示式轉換成對運算子函式的呼叫 可以過載為普通函式 成員函式 友元函式 多次過載時,根據實參型別決定呼叫哪個運算子函式 等號只能過載為成員函式 賦值語句和初始化語句的等號 含義不同,初始化語句需要用建構函式實現 同類賦值注意點 可能包含指...
第四章 運算子的本質
陣列是存在於人們頭腦中的乙個邏輯概念,而編譯器其實並不知道有陣列這個東西,它所知道的,只是運算子,當遇到運算子的時候,編譯器只是簡單地把它轉換為類似 a i j 這樣的等價表示式,之所以是這種表示式,如前幾章所述,是因為c語言的陣列實現本質上是陣列的巢狀。由於這種等價關係的存在,會產生一些古零精怪的...