一、求值順序
求值順序由操作結合性決定,左結合運算子從左至右求值;右結合運算子從右至左求值;除賦值運算子以外,二元運算子是左結合的;賦值運算子和條件運算子是右結合的。
二、比較操作和相等性操作
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 大於閾值的不變,小...