基礎概念:
組合運算子和運算物件(優先順序與結合律)
運算物件轉換(型別轉換)
運算子過載(<>之類)
左值和右值
算術運算子
一元負號對布林值的運算不起作用
邏輯和關係運算子
邏輯與和邏輯或運算子
邏輯非運算子
關係運算子
賦值運算子
賦值運算滿足右結合律
賦值運算優先順序較低
注意:切勿混淆相等運算子和相等運算子
復合賦值運算子
遞增和遞減運算子
建議:除非必須,否則不建議使用遞增遞減運算子後置版本。
*p++ = *(p++) //簡潔可以成為一種美德
成員訪問運算子(.和->)
條件運算子 a>b ? a : b;類似這種
位運算子:
建議僅將位運算子用於處理無符號型別。
位移運算子
位求反運算子
位與 位或 位異或運算子
移位運算子(又叫io運算子) 滿足左結合律
逗號運算子
型別轉換
隱式轉換 例如:int ival = 3.14 + 3;
算術轉換
整型提公升(其實就是超出範圍了把自動型別擴大)
其它隱式轉化
陣列轉換成指標,,
顯式轉換
命名的強制型別轉換
static_cast const_cast reinterpret_cast
附:運算子優先表
C 中的表示式
表示式是在運算元和運算子的基礎上構造而成。表示式的運算子指明了向運算元應用的運算。運算子的示例包括 和new。運算元的示例包括文字 字段 區域性變數和表示式。如果表示式包含多個運算子,那麼是運算子的優先順序決定了各個運算子的計算順序。例如,表示式 x y z相當於計算x y z 因為 運算子的優先順...
C 中的Lambda表示式
c 11開始支援lambda表示式 原文 一段簡單的code 我也不是文藝的人,對於lambda的歷史,以及lambda與c 的那段淵源,我也不是很熟悉,技術人,講究拿 說事。複製 如下 include using namespace std int main return 0 當我第一次看到這段 ...
c 中的lambda表示式
可變lambda 指定lambda返回型別 lambda丟擲異常 在 c 11 中,lambda 表示式 通常稱為 lambda 是一種在被呼叫的位置或作為引數傳遞給函式的位置定義匿名函式物件的簡便方法。lambda 通常用於封裝傳遞給演算法或非同步方法的少量 行。capture 子句 在 c 規範...