天天看點

C語言運算符算術運算符關系運算符邏輯運算符位運算符指派運算符特殊運算符運算符的優先級 

目錄

算術運算符

關系運算符

邏輯運算符

位運算符

指派運算符

特殊運算符

運算符的優先級

算術運算符

運算符 描述 執行個體
+ 加法運算符

int a = 5 + 5;

int b = a + 5;

- 減法運算符,負值運算符

int a = 10 -5;

int b = -5;

* 乘法

int a = 3 * 5;

int b = a * 2;

/ 除法(得到商)

float a = 10.0 / 4;

float b = 10 / 4;

% 取餘(得到餘數)

int a = 5 % 2;

int b = 2 % 5;

++ 自增

int a = 2;

int b = a ++;

int c = ++ a;

-- 自減

int a = 5;

int b = a --;

int c = -- a;

關系運算符

運算符 描述 執行個體
== 檢查兩個操作數的值是否相等,如果相等則表達式的值為真。 a == b
!= 檢查兩個操作數的值是否不相等,如果不相等則表達式的值為真。 a != b
> 檢查左操作數的值是否大于右操作數的值,如果是則表達式的值為真。 a > b
< 檢查左操作數的值是否小于右操作數的值,如果是則表達式的值為真。 a < b
>= 檢查左操作數的值是否大于或者等于右操作數的值,如果是則表達式的值為真。 a >= b
<= 檢查左操作數的值是否小于或等于右操作數的值,如果是則表達式的值為真。 a <= b

邏輯運算符

運算符 描述 執行個體
&& 邏輯與運算符。如果兩個操作數都為真,則表達式的值為真。 a && b
|| 邏輯或運算符。兩個操作數中有一個為真,則表達式的值為真。 a || b
! 邏輯非運算符。如果操作數為真,則表達式的值為假;如果操作數為假,則表達式的值為真。 !a

說明:

利用!!作用于一個操作數,可以得到取值隻有0和1的表達式的值。

位運算符

運算符 描述 執行個體
& 按位與運算符 a & b
| 按位或運算符 a | b
~ 按位取反運算符 ~ a
^ 異或運算符 a ^ b
<< 左移運算符。将左操作數的各二進制位全部左移若幹位(左邊的二進制位丢棄,右邊補0)。 a << n
>> 右移運算符。将左操作數的各二進制位全部右移若幹位,正數左補0,負數左補1,右邊丢棄。 a >> n

說明:

<<和>>運算符作用于整數相當于乘以或者除以2^n,不能作用于浮點數。

指派運算符

運算符 描述 執行個體
= 把右操作數的值賦給左操作數 a = 2;
+= 把右操作數加上左操作數的結果指派給左操作數 a += 2;
-= 把左操作數減去右操作數的結果指派給左操作數 a -= 2;
*= 把右操作數乘以左操作數的結果指派給左操作數 a *= 2;
/= 把左操作數除以右操作數的結果指派給左操作數 a /= 2;
%= 把左操作數除以右操作數的餘數指派給左操作數 a %= 2;
<<= 把左操作數左移右操作數的位數的結果指派給左邊操作數 a <<= 2;
>>= 把左操作數右移右操作數的位數的結果指派給左邊操作數 a >>= 2;
&= 把左右操作數按位與的結果指派給左操作數 a &= b;
|= 把左右操作數按位或的結果指派給左操作數 a |= b;
^= 把左右操作數按異或的結果指派給左操作數 a ^= b;

特殊運算符

運算符 描述 執行個體
sizeof() 擷取變量或類型所占用的記憶體位元組數

sizeof(a);//傳回變量a的位元組數

sizeof(int);//傳回類型int的位元組數

& 取位址運算符 &a;//傳回變量a的記憶體位址
* 取值運算符 *a;//傳回變量a的記憶體位址存儲的值
? : 條件運算符 (a > 0 )? (b = 1) : (b = 0);//如果a大于0則b指派1,否則b指派0

運算符的優先級

優先級 運算符 描述 結合方向
1 [ ] 數組下标 從左到右
( ) 圓括号。(表達式);函數名(形參)
. 成員選擇(結構體變量)
-> 成員選擇(結構體指針)
2 - 負号運算符 從右到左
( ) 強制類型轉換
++ 自增運算符
-- 自減運算符
* 取值運算符
& 取位址運算符
邏輯非運算符
~ 按位取反運算符
sizeof( ) 擷取變量或者類型占用的位元組數
3 * 乘法運算符 從左到右
/ 除法運算符
% 取餘運算符
4 + 加法運算符 從左到右
- 減法運算符
5 << 左移運算符 從左到右
>> 右移運算符
6 > 大于 從左到右
>= 大于等于
< 小于
<= 小于等于
7 == 等于 從左到右
!= 不等于
8 & 按位與 從左到右
9 ^ 異或 從左到右
10 | 按位或 從左到右
11 && 邏輯與 從左到右
12 || 邏輯或 從左到右
13 ? : 條件運算符 從右到左
14 = 指派運算符 從右到左
+= 加後指派
-= 減後指派
*= 乘後指派
/= 除後指派
%= 取餘後指派
<<= 左移後指派
>>= 右移後指派
&= 按位與後指派
^= 異或後指派
|= 按位或後指派
15 , 逗号運算符 從左到右