算術運算子
算術運算子:
+ 加法 , 一目取整
- 減法, 一目 取負 -a
* 乘法
/ 除法
% 取模、求餘 a%b a 和b 必須是整型
++ 自加 1 a++ / ++a
-- 自減 1
關係運算符
> 大於 判斷a是否大於 b a > b
< 小於 判斷a是否大小於 b a > b
>= 大於等於 判斷a是否大於或者等於 b a >= b
<= 小於等於 判斷a是否小於或者等於 b a <= b
== 恆等於 (等於) 判斷a是否等於 b a == b
!= 不等於 判斷a是否不等於 b a != b
注意:
關係運算符用於判斷表示式是否滿足給定的大小條件。
- 關係運算符組成的表示是是關係表示式 ,他的值為布林值 (真/假);
- 注意== 不是= 不要搞錯了。
邏輯運算子
! 邏輯反 將邏輯真變假 ..... 真假交換
&& 邏輯與 可以將兩個關係表示式 連結起來, 當左右兩邊的表示式都為真則表示真
|| 邏輯或 可以將兩個關係表示式 連結起來, 當表示式其中一個為真則整個表示式為真
注意:
- &邏輯與運算中如果左邊表示式為假, 右邊不會別運算
- int a = 3 , b = 9 ; if ( a > b && ++a ) ; 問a的值是多少?
- || 邏輯或運算的過程中如果左邊表示式為真, 右邊將不被運算
- int a = 3 , b = 9 ; if ( a < b || ++a ) ; 問a的值是多少?
- 注意==恆等於的小心思, 不要寫少了, 建議把 左值 寫成常量
位運算子
~ 位邏輯反 ~a 把a的二進位制位每一個都取反 (1變0 / 0變1 )
& 位邏輯與 a&b 將a和b 的每一位進行位與操作,常用於清零操作
| 位邏輯或 a|b 將a和b 的每一位進行位或操作,常用於置1操作
^ 位邏輯異或 a^b 將a和b 的每一位進行位異或操作,相同為1,不同為0,當a於b再異或一次則a變為原來的值。
/* 不使用第三個變數將ab兩個值交換 */
char a = 100; char b = 115; a = a ^ b; b = a ^ b; a = a ^ b; printf("a:%d\n", a); printf("b:%d\n", b);
注意
- 賦值運算子
- 不可以對常量進行賦值
- 不可以對陣列賦值arr = 199 ; // 不可以對陣列賦值
- 可以連續賦值 , 順序是從右往左;//連續賦值 a = b = 100 ;
條件運算子 (三目運算子)
唯一一個擁有三個運算元的運算子
語法: 表示式1 ? 表示式2 : 表示式3
解析: 判斷表示式1 是否為真 ? 如果是 取 表示式2的值 否則取表達式3
sizeof 運算子
用來計算資料型別或變數所佔的記憶體空間大小(位元組數)
語法: sizeof(型別) / sizeof(變數) , 如果計算的是變數 括號可以省略
return 運算子
含義: 用來退出某個函式(主函式:直接退出程式。 子函式:退出子函式。)
語法要求:必須寫在函式體內{ } , 可以攜帶函式的返回值
優先順序
使用linux命令:$ man operator 可檢視