C primer學習筆記 4 5 4 7

2021-07-31 03:25:43 字數 1103 閱讀 2751

【遞增運算子(++) 和遞減運算子(--) 為物件的加1 和減1 操作提供了一種簡潔的書寫形式。

這兩個運算子還可應用於迭代器,因為很多迭代器本身不支援算數運算,所以此時遞增和遞減運算子除了書寫簡潔外還是必須的。】

【除非必須,否則不用遞增遞減運算子的後置版本;

形如*ptr++ 的表示式一開始可能不太容易理解,但其實這是一種被廣泛使用的、有效的寫法

cout << *ptr++ << endl;

// 等價於 cout << *ptr << endl; ptr++;

【點運算子和箭頭運算子都可用與訪問成員。】

【條件運算子(?:) 允許我們把簡單的if-else 邏輯嵌入到單個表示式中,條件運算子按照如下形式使用:

cond?expr1:expr2

其中cond 是判斷條件的表示式,而expr1 和expr2 是兩個型別相同或可能轉換為某個公共型別的表示式。

含有條件運算子的**單元通常當作依條件發生變化的表示式來使用。】

【當條件運算子的兩個表示式都是左值或者能轉換成同一種左值型別時,運算的結果是左值;否則運算的結果是右值。】

【允許在條件運算子的內部巢狀另外乙個條件運算子:

finalgrade = (grade >= 90) ? "high pass"

: (grade < 60) ? "fail" : "pass";

條件運算子的巢狀最好別超過兩到三層,因為會使程式可讀性下降。】

條件運算子的優先順序非常低,因此當一條長表示式中巢狀了條件運運算元表示式時,通常需要在它兩端加上括號:

cout << ((grade < 60) ? "fail" : "pass"); // 輸出pass 或fail

cout << (grade < 60) ? "fail" : "pass"; // 輸出1 或0

cout << grade < 60 ? "fail" : "pass" // 錯誤:試圖比較cout 和60

C Primer學習筆記

學習完乙個知識點後寫上自己的理解。算是總結吧,加深一下自己的印象,也可以在以後複習的時候方便檢視 加油加油!14.1關於運算子的過載 存在的意義 目前看來就是因為操作符大部分是針對資料的,比如int型,char型,書中稱為內建型別。而當類之間想要用操作符的時候,比如兩個類的物件相加,那麼就需要去重 ...

《C Primer》學習筆記

2008年7月18日 颱風海鷗登陸 1 宣告與定義 變數的定義用於為變數分配儲存空間,還可以為變數指定初始值。在乙個程式中,變數有且僅有乙個定義。變數的宣告用於向程式表明變數的型別和名字。變數的宣告包括物件名 物件型別和物件型別前的關鍵字extern 當設計標頭檔案時,記住定義和宣告的區別是很重要的...

c primer學習筆記

3.2 標準庫型別string 1.注意在使用empty size 和is x 這種函式時請注意其使用的方法,例如 string s hello world if s.empty empty 和size 更像是一種屬性 if is x s 0 is 這種函式更像是一種函式,而且是針對的單個字元 2....