在c語言中,操作符主要包括算數操作符、移位操作符、位操作符、賦值操作符、單目操作符、關係操作符、邏輯操作符、條件操作符、逗號表示式、下標引用、函式呼叫和結構成員。
以下為各操作符簡單介紹:
1.算術操作符:
例:定義整型變數 a = 4,b = 2.
運算子含義
運算操作
結果加法運算子
a + b
a和b的和 6
減法運算子
a - b
a和b的差 2
乘法運算子
a*ba和b的乘積 8
除法運算子
a/ba除以b的商 2
求餘運算子
a%ba除以b的餘數 0
正號運算子(單目運算子)
+aa 4
負號運算子(單目運算子)
-b-b的值 -2
注:<1>.除了%操作符之外,其他的幾個操作符可以作用於整數和浮點數;
<2>.對於/操作符如果兩個運算元都為整數,執行整數除法。而只要有浮點數執行的就是浮點數除法;
<3>.%操作符的兩個運算元必須為整數。返回的是整除之後的餘數。
2.移位操作符
<< 左移操作符
>> 右移操作符
<1>.左移操作符 <<
移位規則:
左邊拋棄,右邊補零
注:實際上變數(a)在沒有被賦值的情況下,自身的值不會變化。
<2>.右移操作符 >>
右移運算分為邏輯右移和算數右移兩種
其移位規則為:
邏輯右移: 左邊用0補充,右邊丟棄
算數右移: 左邊用原該值的符號位填充,右邊丟棄
例:int num = -1;
則在記憶體中儲存的補碼為(32個1):
(注:整型在記憶體中的儲存為原數值的補碼。其中正數的原碼、反碼、補碼都相同,都為其原碼;負數的補碼為反碼 + 1 .
例:int a =1;
原碼:00000000000000000000000000000001
反碼:00000000000000000000000000000001
補碼:00000000000000000000000000000001
int b = -1;
原碼:10000000000000000000000000000001
反碼:11111111111111111111111111111110 《符號位不變》
補碼:11111111111111111111111111111111 《反碼+1>
邏輯右移:
左邊補零
(最右邊的1丟棄)
算數右移:
左邊用該原值的符號位填充
(最右邊的1丟棄)
注:對於移位運算子,不要移動負數字,是標準為定義的。
3.位操作符
& 按位與
| 按位或
^ 按位異或 (不同為真)
例: int a =13;
int b = 5;
a 00000000000000000000000000001101
b 00000000000000000000000000000101
a&b 00000000000000000000000000000101
a|b 00000000000000000000000000001101
a^b 00000000000000000000000000001000
注:運算元必須為整數
4.賦值操作符
例:int x = 8;
x = x + 10;
x += 10; //復合賦值,x +=10; 與 x = x + 10;得到的解果是相同的。其餘運算子用法相似。
5.單目操作符
! 邏輯反操作
- 負值
+ 正值
& 取位址
sizeof 運算元的型別長度(以位元組為單位)
~ 對乙個數的二進位制按位取反
-- 前置--;後置--
++ 前置++;後置++
* 簡介訪問操作符(解引用操作符)
(型別) 強制轉換型別
注:後置++ (--) 的用法為先引用、後運算;前置++(--) 的用法為先運算,後引用。
例:#include
int main()
int i = 2;
int j = 5;
int x = i++;
int y = --j;
printf("i = %d x = %d j = %d y = %d\n ",i,x,j,y); //輸出結果為i =3 x = 2 j = 4 y = 4
return 0;
6.關係操作符
(大於)(大於等於)(小於)(小於等於)(不相等)(相等)
注:!= 用於測試「不相等」;
== 用於測試「相等」;
不要將 == 和 = 用混了,== 為比較是否相等,= 用於賦值。
7.邏輯操作符
&& 邏輯與
|| 邏輯或
注:這裡注意區分邏輯與和按位與 以及 邏輯或和按位或;
例:1 & 2 ————> 0 按位與
1 && 2————>1 邏輯與
1|2————>3 按位或
1||2————>1 邏輯或
8.條件操作符
exp1 ? exp2 : exp3
判斷exp1是否為真,若為真,則exp2;若為假,則exp3
9.逗號表示式
用逗號隔開的多個表示式
例:exp1 , exp2 ,exp3,…… expn
注:逗號表示式,從左向右依次執行。整個表示式的結果是最後乙個表示式的結果。
例:#include
int main()
int i,j;
for(i = 0 , j = 0; i < 2 , j < 5; i++ , j++)
printf("c\n"); //共輸出5個c
10.下標引用、函式呼叫和結構成員
(1)[ ]
運算元:乙個陣列名 + 乙個索引值
例:int arr[20]; //建立陣列
arr[10] = 10; //使用下標引用操作符
[ ]的兩個運算元是arr和9。
(2) ()
函式呼叫操作符
接受乙個或者多個運算元:第乙個運算元是函式名,剩餘的運算元是傳遞給函式的引數。
(3)訪問乙個結構體的成員
.結構體.成員名
->結構體指標->成員名
C語言操作符的簡單介紹
算數操作符 移位操作符 位操作符 賦值操作符 單母操作符 關係操作符 邏輯操作符 條件操作符 逗號操作符 下標引用 函式呼叫和結構成員 1.除了 操作符以外,其他的幾個操作符可以作用於整數和浮點數 2.對於 操作符如果兩個運算元都為整數,執行整數除法。而只要有浮點數執行的就是浮點數除法 3.操作符的...
C語言 操作符(簡單介紹)總結
簡單介紹為主,後面會詳細講 算術操作符 對應符號與使用方式 加號 1 2 減號 2 1 乘號 2 3 這裡輸出結果為6 除號 5 2 輸出結果為商 取模 5 2 輸出結果為餘數 include intmain 移位操作符 2進製 用法 右移 include intmain 整型1佔4個位元組 32個...
簡單了解C語言操作符
除了 操作符之外,其他的 幾個操作符可以作 用於整數和浮點數。對於 操作符如果兩個運算元都為整數,執 行 整數除法。而只要有浮點數執 行 的就是浮點數 除法。操作符的兩個運算元必須為整數。返回的是整除之後的餘數。左移操作符 右移操作符左移操作符 左邊拋棄 右邊補0 右移操作符 移位規則 首先右移運算...