算術操作符
移位操作符
位操作符
賦值操作符
單目操作符
關係操作符
邏輯操作符
條件操作符
逗號表示式
下標引用,函式呼叫和結構成員
+求兩個數的和
-求兩個數的差
*求兩個數的積
/求兩個數的商
%取模(兩個數相除的餘數)
注意事項:左移操作符
<<
右移操作符
>>
邏輯移位和左移類似
int a = 5;
其二進位制序列是:
0000 0000 0000 0000 0000 0000 0000 0101
右移一位的結果就是:
0000 0000 0000 0000 0000 0000 0000 0010 (a>>1)
算數移位左邊不能直接用0填充,要根據資料的符號位來決定
int a = -1;
其二進位制序列(補碼)是:
1111 1111 1111 1111 1111 1111 1111 1111
由於a是負數,在移位時右邊填充的不是0,而是最高位的符號位:1;
所以右移一位的結果是:
1111 1111 1111 1111 1111 1111 1111 1111 (a>>1)
注意事項:&
按位與丨
按位或^
按位異或
& 按位與
0 & 0為0; 0 & 1 為0; 1 & 1為1;
int a = 5;
int b = 6;
二進位制序列分別是:
0000 0000 0000 0000 0000 0000 0000 0101
0000 0000 0000 0000 0000 0000 0000 0110
a & b的結果就是:
0000 0000 0000 0000 0000 0000 0000 0100
| 按位或
0 | 0為0; 0 | 1為1; 1 | 1為1;
int a = 5;
int b = 6;
a | b的結果就是:
0000 0000 0000 0000 0000 0000 0000 0111
^ 按位異或
0 ^ 0為0; 0 ^ 1為1; 1 ^ 1為0;
int a = 5;
int b = 6;
a ^ b的結果就是:
0000 0000 0000 0000 0000 0000 0000 0011
注意事項:=
把乙個變數的值或者乙個數值複製給另乙個變數;
int a = 1;
把1賦值給a變數;
int b = a;
把a變數的值賦值給b變數;
賦值運算子可以連續使用(不推薦);
int c = b = a ;
+=「x += y」 == 「x = x + y」
-=「x -= y」 == 「x = x - y」
*=「x *= y」 == 「x = x * y」
/=「x /= y」 == 「x = x / y」
%=「x %= y」 == 「x = x % y」
>>=
「x >>= y」 == 「x = x >> y」
<<=
「x <<= y」 == 「x = x << y」
!邏輯反操作-負值
+正值&取位址
sizeof
運算元型別長度(以位元組為單位)
~對乙個數的二進位制按位取反
–前置,後置–
++前置,後置++
*間接訪問操作符(解引用操作符)
(型別)
強制型別轉換
注意事項:sizeof不是函式,是乙個運算子!>
大於<
小於》=
大於等於
<=
小於等於
!=不相等
==等於
注意事項:不要將「==」和「=」搞混了!&&
邏輯與丨
邏輯或邏輯與 && ,當 && 符號兩邊表示式的值都為真的時候,結果為真;否則都為假。
邏輯或 || ,當 || 符號兩邊表示式的值都為0的時候,結果為假;否則都為真。
注意事項:
&&在運算時,從左到右依次判斷,如果左邊的表示式為假;則不會再判斷右邊的表示式(如果右邊是乙個賦值表示式,也不會被止執行)。
同理,||在運算時如果左邊的表示式為真,則不會再判斷右邊的表示式
exp1 ? exp2 : exp3
若exp1的值為真,則執行exp2,否則執行exp3。
逗號表示式,就是用逗號隔開的多個表示式。從左向右依次執行。整個表示式的結果是最後乙個表示式的結果。
int a = 2;
int b = 3;
int c = (a, b, a + b);
執行結束後c的值為5;
#include
void
test1()
void
test2
(const
char
*str)
intmain()
3.訪問乙個結構的成員
. 結構體.成員名
-> 結構體指標->成員名
#include
struct stu ;
void
set_age1
(struct stu stu)
void
set_age2
(struct stu* pstu)
intmain()
C語言學習總結 操作符
算術操作符 移位操作符 位操作符 賦值操作符 單目操作符 關係操作符 邏輯操作符 條件操作符 逗號表示式 除了 操作符之外,其他的幾個操作符可以作用於整數和浮點數。對於 操作符如果兩個運算元都為整數,執行整數除法。而只要有浮點數執行的就是浮點數除法。對於 操作符如果兩個運算元都為整數,執行整數除法。...
C語言學習筆記 和 操作符
1 運算子用於在預處理期將巨集的引數轉換為字串 2 的轉換作用是在預處理期完成的,因此只在巨集定義中有效,即其他地方不能用 運算子 3 用法 define string x x printf s n string hello world 注意,hello world 不加引號!include def...
C語言操作符學習總結
操作符分類 除法 如果兩個運算元為整數,執行整數除法,只要有浮點型就執行浮點數除法。模 只能對整數進行 兩個數都為整數 左移 exp int a 10 b a 1 a 10 b 20 右移 exp int a 10 1 原碼 10000000 00000000 00000000 00000001 反...