操作符的存在使c語言更加的靈活,實現更多的功能。但是,操作符的一些繁瑣的使用方式,規則卻常常讓我們這些初學者頭疼。本文將操作符進行總結,彙總一起分享。
一,操作符的分類
操作符分為以下幾種:算術操作符,位操作符,賦值操作符,單目操作符,關係操作符,邏輯操作符,條件操作符,逗號操作符,下標引用,函式呼叫和結構成員。
算術操作符:
+ - * / %
1.除了%操作符外,其他的操作符可以作用於整數和浮點數;
2.對於/操作符,如果有乙個浮點數就執行浮點數除法;
3.%操作符的兩個運算元必須是整數,返回整數相除之後的餘數。
移位操作符
<< 左移操作符
>> 右移操作符
例如: int 型資料15在計算機裡儲存的是32位二進位制數
00000000000000000000000000001111
15>>1即將二進位制序列右移一位,右移出來的位丟掉,左邊補符號位(算術移位)為
00000000000000000000000000000111
在部分編譯器中右移會採用另一種邏輯移位,即左邊用0補充,右邊丟棄。
15<<1就是將二進位制序列左移一位,左邊移出來的位丟點,右邊補0為
00000000000000000000000000011111
*注:*對於移位運算,不能移動負數字
即 num>>-1; //error
位運算子
& 按位與:同為1時為1,有0即為0;
| 按位或:有1即為1,同0才是0;
^ 按位異或 :同為0,異為1.
賦值運算子
= 可以給變數賦給你想要的值。
例如: int a = 10;
賦值運算子可以連續賦值使用,但是為了美觀,清晰分開賦值更好一點。
還有種復合賦值賦,它在賦值運算子的基礎上增加了乙個運算的過程。
復合賦值符有:+= *= -= /= %= &= ^= |= >>= <<=
例如:a+=1;
與 a = a + 1;
表示同樣的含義,執行同樣的操作,其餘復合運算子效果類似。
單目操作符
! 邏輯反操作
大於邏輯運算子大於等於
< 小於
<= 小於等於
!= 不相等
== 相等
&& 邏輯與
|| 邏輯或
&&執行時左邊為0,便不執行右邊返回0;
|| 執行時左邊為1,就不執行後面返回1。
條件操作符
exp1 ? exp2 : exp3
若exp1滿足則執行exp2否則exp3.
逗號表示式
exp1,exp2,exp3,……
逗號表示式從左到右依次執行,整個表示式的結果的最後乙個表示式的結果。
下標引用、函式呼叫和結構成員
1.下標引用操作符
例如 : arr [ ];
2.函式呼叫操作符 ()
函式名 (引數)
3.結構成員操作符 . ->
訪問乙個結構體的成員。
#include struct stu
;void set_age1(struct stu stu)
void set_age2(struct stu* pstu)
int main()
操作符的屬性
複雜表示式的求值有三個影響的因素。
操作符的優先順序
操作符的結合性
是否控制求值順序。
兩個相鄰的操作符先執行哪個?取決於他們的優先順序。如果兩者的優先順序相同,取決於他們的結合性。
操作符優先順序
C語言操作符詳解
我們日常所見到的任何事物都是有個種各樣細小的零件所組成的,比如我們現在用的 cpu 它的內部是由許許多多的二極體 三極體等基本元器件再加上連線各種元器件的導線所組成的。不同的組合方式也就形成了不同的功能,比如alu 控制器 暫存器 儲存器等等。當然我們的c語言也不例外,它也是由最基本的運算所組成的,...
c語言操作符詳解
一 算術操作符 算術操作符共有5個,分別為加法操作符 減法操作符 乘法操作符 除法操作符 和求餘操作符 它們均為雙目操作符,即操作符前後都需要乙個運算元。printf sum d a b printf diff d a b printf mul d a b printf rate d distanc...
C語言操作符詳解
算數操作符 算術運算子用在數學表示式中,它們的作用和在數學中的作用一樣。注意 只能用於整型 移位操作符 右移操作符 左移操作符 左移操作符 移位規則 左邊拋棄 右邊補0。右移操作符 移位規則 首先右移運算分兩種 邏輯移位 無符號 左邊用0填充,右邊丟棄 算術移位 有符號 左邊用原該值的符號位填充,右...