操做符總結:
1、算術操做符:+、 -、 *、 /、 %
注意:%不能夠作浮點數運算數組
2、移位操做符: << 左移操做符 >>右移操做符
右移規則:
邏輯移位:左邊補零,右邊丟棄 (unsigned)
算術移位:左邊補符號位,右邊丟棄
左移規則:左邊捨棄,右移補零。
ps:在移位後,數值自己沒有賦值。(值傳到cpu計算後,沒有將所算的值從新付給內存這個過程)。ide
3、位操做符:&、 | 、^
注意:他們的操做數必須是整數。
練習題:
一、無臨時變量將兩個值進行交換。(^實現:a=a^b,b=a^b,a=a^b)
二、求一個整數存儲在內存的二進制中1的個數。(&:num=num&(num-1) 避免重複32次,作無效的判斷)函數
4、賦值操做符:+= 、 -= 、 = 、/= 、*=、 %=、 >>=、 <<= 、&= 、 |= 、^=
做用:使寫法簡潔指針
5、單目操做符:! - + & sizeof ~ -- ++ (類型)
說明:1. & 取地址符(輸出地址%p)
2.sizeof 求操做符的類型長度(單位:字節) 在編譯使就執行了。
注意sizeof求數組大小時數組在哪裏開闢,就在那裏用sizeof求數組大小。由於數組在傳參時傳的是數組指針,計算的是指針大小。索引
6、關係操做符: > 、< 、 >=、 <= 、 !=、 ==
注意:1. 因爲浮點數在存儲過程當中會有精度損失,於是不要用浮點數判等,用小於某精度替換。
2.爲避免在判等過程當中,==不當心寫爲=,於是在判等時將常數寫在前面。內存
7、邏輯操做符:&&、 ||
注意:只要碰見能夠判斷表達式結果,則後面的都不會再作判斷了。(&&運算時,碰見表達式等於零,則後面的表達式就不執行了;||碰見表達式等於1,則後面的表達式就不執行了)it
8、條件操做符: exp1 ? exp2 :exp3 exp1成立選exp2執行,不成立選exp3執行。等同於一個if...else...語句。
9、逗號表達式:(exp1,exp2……expn) 從左到右依次執行,整個表達式的結果是最後一個表達式的結果。編譯
9、下表引用、函數調用和結構成員
1.[ ] 下表引用操做符: 操做數:一個數組名+一個索引值
Eg:int arr[10]; //建立數組 [ ]的兩個操做數是arr和9
arr [0]=10; //使用下標引用操做符找空間存數 arr[0]=(arr+0)
2.()函數調用操做符,接受一個或多個操做數:第一個是函數名,剩餘的操做數就是傳給函數的參數。
3.訪問結構體成員: . :結構體.成員名 -> 結構體指針->成員名class