1.操作符(運算符)分類:
(1)算術運算符 + - * / % ++ --
(2)關係運算符 > < == >= <= !=
(3)邏輯運算符 ! && ||
(4)位運算符 << >> ~ | ^ &
(5)賦值運算符 =及其擴展賦值運算符
(6)條件運算符 ?:
(7)逗號運算符 ,
(8)指針運算符 * &
(9)求字節運算符 sizeof
(10)強制類型轉換運算符 (類型)
(11)成員運算符 . ->
(12)下標運算符 []
(13)其他 如函數調用運算符
2.簡單介紹幾個操作符(運算符):
(1)算術運算符 + - * / % ++ --
%只能作用於兩個整數,不能用於浮點數
/運算符的的操作數只要有一個位浮點數,則結果爲浮點數,否則結果爲整數。
++ -- 注意a++和++a的區別
int a = 1;
int c = a++;
//c = 1 a= 2
int d = ++a;
// d = 3 a = 3
++a :a先自增1,然後表達式再使用a的值
a++:表達式先使用a的值,然後a再自增1
對a來說其結果都是a = a+1;
(2)關係運算符 > < == >= <= !=
關係運算符組成的關係表達式的值是邏輯類型的,即真和假。有的編譯系統中用1表示 真,0表示假。
(3)邏輯運算符 ! (邏輯非)&& (邏輯與)||(邏輯或)
有的編譯系統規定:非零爲真,真用1表示。零爲假,假用0表示。
&& 若第一個表達式爲假,則不計算第二個表達式。
|| 若第一個表達式爲真,則不計算第二個表達式。
(4)位運算符 << (左移運算符)>>(右移運算符) ~(按位取反)
|(按位或) ^(按位異或) &(按位與)
計算機中數據都是以二進制補碼形式存儲的。例如在32位平臺上,-1的二進制爲
11111111 11111111 11111111 11111111
左移運算即將二進制數想左移動指定的位數,移掉的丟棄,右邊空出的一律補0。
例如 -1<<3 結果爲 11111111 11111111 11111111 11111000
右移運算即將二進制數想左移動指定的位數,移掉的丟棄,左邊補位有兩種情況,一 種是一律補0,另一種是補符號位。一般是補符號位。
例如 -1>>3 結果爲 11111111 11111111 11111111 11111111
~ 將各個二進制位有由1變0,由0變1。
| ^ &則是將對應的二進制位進行相應的運算。
(5)賦值運算符 =及其擴展運算符
就是將一個值賦給變量。
複合賦值運算符 += %= &= >>=等等。a += 3;等價於 a = a+3;其他賦值運算符於此類 似。
(6)條件運算符 ?:
exp1?exp2:exp3 若exp1爲真,則執行exp2,否則執行exp3;
(7)逗號運算符 ,
exp1,exp2,exp3 ,...expn 從左向右依次計算各個表達式的值,最後一個表達式的值爲整 個 逗號表達式的值和類型。
(9)求字節運算符
sizeof
int a;
sizeof (int);// √
sizeof (a);// √
sizeof int;// ×
sizeof a; // √
sizeof 求的是類型說明符(如int)和表達式所表示的數據所佔有的字節數。