C 學習筆記(十一)求值順序 比較操作 運算子

2021-08-29 22:55:56 字數 688 閱讀 6448

一、求值順序

求值順序由操作結合性決定,左結合運算子從左至右求值;右結合運算子從右至左求值;除賦值運算子以外,二元運算子是左結合的;賦值運算子和條件運算子是右結合的。

二、比較操作和相等性操作

1.淺比較

大多數引用型別的相等時,只有引用被比較。也就是說,如果它們都指向記憶體中的相同物件,那麼比較為true,否則為false。

2.深比較

string型別雖然是引用型別,但是它使用深比較。即如果兩個字串有相同長度和相同大小寫敏感的內容,那麼比較為true,即使它們占用不同的記憶體區域。

委託也是引用型別,也使用深比較。比較委託時,如果兩個委託都是null,或者兩者的呼叫列表中有相同數目的成員,並且呼叫列表相匹配,那麼比較返回true。

比較數值表示式時,型別和值被比較。比較enum型別時,比較運算元的底層值。

三、遞增運算子和遞減運算子

遞增運算子對運算元加1。遞減運算子從運算元減1。遞增和遞減運算子都是一元的,並且都有兩種形式:前置形式和後置形式。

前置形式會對變數的值做操作後返回變數的新值。

後置形式會對變數的值做操作後返回變數未操作時的舊值。

四、條件邏輯運算子

邏輯運算子用於比較或否定它們運算元的邏輯值,並返回結果邏輯值。

條件邏輯運算子使用「短路」模式操作,意思是,如果計算表示式1之後結果已經確定,那麼它會跳過表示式2的求值。

c 學習筆記十一

類 1 封裝 繼承多型 2 類的定義 class box 3 建構函式 示例 如下 class box 方法 double box value 預設的建構函式 如果沒有定義構造成器,編譯器會自動生成乙個 預設的初始化值 在定義有引數的構造成函式後,可以去掉預設的構 造器 在構造器中使用初始化列表 示...

c 學習筆記十一

類 1 封裝 繼承多型 2 類的定義 class box 3 建構函式 示例 如下 class box 方法 double box value 預設的建構函式 如果沒有定義構造成器,編譯器會自動生成乙個 預設的初始化值 在定義有引數的構造成函式後,可以去掉預設的構 造器 在構造器中使用初始化列表 示...

opencv學習筆記十一 閾值操作

閾值操作型別有 thresh binary 0 二值化,大於閾值的為255,小於閾值的為0 thresh binary inv 1 反二值化,大於閾值的為0,小於閾值的為255 thresh trunc 2 截斷法,大於閾值的取閾值,小於閾值的不變 thresh tozero 3 大於閾值的不變,小...