----c++中的運算子
運算子是一種告訴編譯器執行特定的數學或者邏輯操作的符號。c++內建了豐富的運算子。和運算子相關的概念和知識也是c++程式語言中的重要組成部分。這裡做乙個初步總結。
基本運算子主要分為以下五類
1, 算術運算子
加法運算子(+)、減法運算子(-)、乘法運算子(*)、除法運算子(/)、取模運算子(%)、自增運算子(++)和自減運算子(- -)。
滿足左結合律;當運算優先順序相同時,從左到右結合
2, 關係運算子
相等運算子(==),不等運算子(!=),大於運算子(>),小於運算子(=)以及小於等於運算子(<=)。
(除非過載,關係運算子的運算結果一般為布林值)
3, 邏輯運算子
包括邏輯與運算子(&&)、邏輯或運算子(||)和邏輯非運算子(!)。
其中邏輯與和邏輯或運算在c++中採用短路實現,即對於(a&&b),假如已經運算得知a為false,則不再對b進行運算,直接返回結果false;對於(a||b),假如已經運算得知a為true,則不再對b進行運算,直接返回true。
4, 位運算子
位運算子作用於二進位制位,並逐位執行操作。(程式中所有的數在計算機記憶體中都是以二進位制儲存的)
假設a=60=0b00111100, b=13=0b00001101,則位運算的描述如下:
關於位運算子的妙用,eg:
二進位制補碼運算子(~):乙個有符號的二進位制數的補碼通常通過該運算子獲得。計算機中有符號整數通常都是採用補碼進行表示的。
二進位制左移運算子(<
二進位制右移運算子(>>):對於正整數而言,右移一位意味著/2,但是執行效率卻比普通的算術運算子高很多。
5, 賦值運算子
賦值運算子其實就是等號(=)以及它與所有算術運算子和位運算子的結合。
例如a+=b就等同於a = a + b。賦值運算子可以起到簡化**的作用。c++支援的賦值運算子主要包括:簡單賦值運算子(=)、加賦值運算子(+=)、減賦值運算子(-=)、乘賦值運算子(*=)、除賦值運算子(/=)、求模賦值運算子(%=)、左移賦值運算子(<<=)、右移賦值運算子(>>=)、按位與賦值運算子(&=)、按位或賦值運算子(|=)以及按位異或(^=)賦值運算子。
6, 其它運算子
成員訪問運算子
點運算子;獲取類物件的乙個成員
箭頭運算子;ptr->m等價於(*ptr).m
條件運算子 ?: (三目運算子)
7.運算子優先順序
當然知道了運算子的作用,還需要知道運算子的優先順序
C 移位運算子詳細說明
為什麼需要移位?移位可以提高 的執行效率,增快執行的速度。向左移n位 等價於 2 n 向右移n位等價於 2 n 以前感覺移位運算子自己挺明白的,也許是學的時間長了,後來一看,忘得差不多了。現在參考一些網上的學習資料,將位移運算子整理一下,作為知識點總結,也算個積累。在講移位運算子之前,先簡單補充一下...
C 條件運算子(三目運算子)
在某些情況下,可以用條件運算子 來簡化if語句。是乙個三元運算子,其構成的表示式格式為 表示式1 表示式2 表示式3 條件運算子的執行流程示意圖如上圖所示,描述如下 1 計算表示式1的值 2 若表示式的值為真 或非0 則只計算表示式2,並將其結果作為整個表示式的值 反之,即表示式1的值為假 或為0 ...
C 條件運算子(三目運算子)
在某些情況下,可以用條件運算子 來簡化if語句。基本格式 是乙個三元運算子,其構成的表示式格式為 表示式1 表示式2 表示式3 執行流程 條件運算子的執行流程示意圖如上圖所示,描述如下 1 計算表示式1的值 2 若表示式的值為真 或非0 則只計算表示式2,並將其結果作為整個表示式的值 反之,即表示式...