1. 程式人生 > >操作符總結

操作符總結

總結 類型 練習 就是 接受 1的個數 精度 結構體成員 多個

操作符總結:
一、算術操作符:+、 -、 *、 /、 %
註意:%不可以做浮點數運算

二、移位操作符: << 左移操作符 >>右移操作符
右移規則:
邏輯移位:左邊補零,右邊丟棄 (unsigned)
算術移位:左邊補符號位,右邊丟棄
左移規則:左邊舍棄,右移補零。
ps:在移位後,數值本身沒有賦值。(值傳到cpu計算後,沒有將所算的值重新付給內存這個過程)。

三、位操作符:&、 | 、^
註意:他們的操作數必須是整數。
練習題:
1、無臨時變量將兩個值進行交換。(^實現:a=a^b,b=a^b,a=a^b)
2、求一個整數存儲在內存的二進制中1的個數。(&:num=num&(num-1) 避免重復32次,做無效的判斷)

四、賦值操作符:+= 、 -= 、 = 、/= 、*=、 %=、 >>=、 <<= 、&= 、 |= 、^=
作用:使寫法簡潔

五、單目操作符:! - + & sizeof ~ -- ++ (類型)
說明:1. & 取地址符(輸出地址%p)
2.sizeof 求操作符的類型長度(單位:字節) 在編譯使就執行了。
註意sizeof求數組大小時數組在哪裏開辟,就在那裏用sizeof求數組大小。因為數組在傳參時傳的是數組指針,計算的是指針大小。

六、關系操作符: > 、< 、 >=、 <= 、 !=、 ==

註意:1. 由於浮點數在存儲過程中會有精度損失,因而不要用浮點數判等,用小於某精度替換。
2.為避免在判等過程中,==不小心寫為=,因而在判等時將常數寫在前面。

七、邏輯操作符:&&、 ||
註意:只要遇見可以判斷表達式結果,則後面的都不會再做判斷了。(&&運算時,遇見表達式等於零,則後面的表達式就不執行了;||遇見表達式等於1,則後面的表達式就不執行了)

八、條件操作符: exp1 ? exp2 :exp3 exp1成立選exp2執行,不成立選exp3執行。等同於一個if...else...語句。
九、逗號表達式:(exp1,exp2……expn) 從左到右依次執行,整個表達式的結果是最後一個表達式的結果。

九、下表引用、函數調用和結構成員
1.[ ] 下表引用操作符: 操作數:一個數組名+一個索引值
Eg:int arr[10]; //創建數組 [ ]的兩個操作數是arr和9
arr [0]=10; //使用下標引用操作符找空間存數 arr[0]=(arr+0)
2.()函數調用操作符,接受一個或多個操作數:第一個是函數名,剩余的操作數就是傳給函數的參數。
3.訪問結構體成員: . :結構體.成員名 -> 結構體指針->成員名

操作符總結