C語言基礎知識運算子

2021-03-04 09:44:40 字數 2585 閱讀 2222

三、運算子

賦值運算子

作用是把某個常量或變數或表示式的值賦值給另乙個變數。符號為『=』。

賦值語句左邊的變數在程式的其他地方必須要宣告。已賦值的變數稱為左值,因為它們出現在賦值語句的左邊;產生值的表示式我們稱為右值,因為它們出現在賦值語句的右邊。常數只能作右值。

如:count=5; total1=total2=0;

算術運算子

在c語言中有兩個單目和五個雙目運算子。

符號功能

+ 單目正

單目負乘法

除法取模

加法 - 減法

運算子運算順序:先算乘除再算加減。單目正和單目負最先運算。

取模運算子(%)用於計算兩個整數相除所得的餘數。例如:a=7%4;

單目減運算子相當於取相反值,若是正值就變為負值,若是負數就變為正值。單目加運算子沒有意義,純粹是和單目減構成一對用的。

邏輯運算子

符號功能

&& 邏輯與表示所有真才是真

|| 邏輯或乙個真就為真,所有都為假才為假

! 邏輯非運算是把相應的變數資料轉換為相應的真/假值。若原先為假,則邏輯非以後為真,若原先為真,則邏輯非以後為假。

當乙個邏輯表示式的後一部分的取值不會影響整個表示式的值時,後一部分就不會進行運算了。例如:

a=2,b=1; a||b-1;

因為a=2,為真值,所以不管b-1是不是真值,總的表示式一定為真值,這時後面的表示式就不會再計算了。

關係運算子

關係運算子是對兩個表示式進行比較,返回乙個真/假值。

符號功能

> 大於

< 小於

>= 大於等於

<= 小於等於

== 等於

!= 不等於

自增自減運算子

對變數的操作結果是增加1和減少1。例如:

--couter;

couter--;

++amount;

amount++;

運算子放在變數前面,那麼在運算之前,變數先完成自增或自減運算;如果運算子放在後面,那麼自增自減運算是在變數參加表示式的運算後再運算。如:

num1=4;

num2=8;

a=++num1;

b=num2++;

a=++num1;這總的來看是乙個賦值,把++num1的值賦給a,因為自增運算子在變數的前面,所以num1先自增加1變為5,然後賦值給a,最終a也為5。b=num2++;是把num2 ++的值賦給b,因為自增運算子在變數的後面,所以先把num2賦值給b,b應為8,然後num2自增加1變為9。

復合賦值運算子

如:total=total+3;

它的意思是本身的值加3,然後在賦值給本身。為了簡化,上面的**也可以寫成: total+=3;

復合賦值運算子有下列這些:

符號功能

+= 加法賦值

-= 減法賦值

*= 乘法賦值

/= 除法賦值

%= 模運算賦值

<<= 左移賦值

>>= 右移賦值

&= 位邏輯與賦值

|= 位邏輯或賦值

^= 位邏輯異或賦值

對於a=a+1,表示式a被計算了兩次,對於復合運算子a+=1,表示式a僅計算了一次。

條件運算子

條件運算子(? :)是c語言中唯一的

乙個三目運算子,它是對第乙個表示式作真/假檢測,然後根據結果返回另外兩個表示式中的乙個。

《表示式1>?《表示式2>:《表示式3>

在運算中,首先對第乙個表示式進行檢驗,如果為真,則返回表示式2的值;如果為假,則返回表示式3的值。

例如: a=(b>0)?b:-b;

當b>0時,a=b;當b不大於0時,a=-b;這就是條件表示式。其實上面的意思就是把b的絕對值賦值給a。

逗號運算子

在c語言中,多個表示式可以用逗號分開,其中用逗號分開的表示式的值分別計算,但整個表示式的值是最後乙個表示式的值。

假設b=2,c=7,d=5,

a1=(++b,c--,d+3);

a2=++b,c--,d+3;

對於第一行**,有三個表示式,用逗號分開,所以最終的值應該是最後乙個表示式的值,也就是d+3,為8,所以a=8。對於第二行**,那麼也是有三個表示式,這時的三個表示式為a2=++b、c--、d+3,(這是因為賦值運算子比逗號運算子優先順序高)所以最終表示式的值雖然也為8,但a2=3。

優先順序和結合性

運算子計算時有一定的順序,優先順序和結合性是運算子兩個重要的特性,結合性又稱為計算順序,它決定組成表示式的各個部分是否參與計算以及什麼時候計算。

下面是c語言中所使用的運算子的優先順序和結合性:

優先順序運算子結合性

(最高) () -> . 自左向右

sizeof 自右向左

* / % 自左向右

+ - 自左向右

<< >> 自左向右

< <= > >= 自左向右

== != 自左向右

& 自左向右

^ 自左向右

| 自左向右

&& 自左向右

|| 自左向右

?: 自右向左

<<= >>= 自右向左

(最低) , 自左向右

c語言邏輯運算子詳解

邏輯運算子 包括 1。邏輯與 2。邏輯或 3。邏輯非 邏輯運算子用於對包含關係運算子的表示式進行合併或取非 對於使用邏輯運算子的表示式,返回0表示 假 返回1表示 真 關於邏輯運算子的解釋 請注意 任何使用兩個字元做符號的運算子,兩字元之間不應有空格,即將 寫成 是錯誤的。假設乙個程式在同時滿足條件...

C 運算子順口溜

初等單目算術位移,關係位邏邏輯條件,賦值逗號.單目的優先面試常考 不反自加減負星,位址,sizeof.不反自加減,正負心地塞.醋 初等,4個 指向結構體成員 結構體成員 壇 單目,9個負號 型別 指標 取位址 sizeof長度 結合方向 自右向左 酸 算術,5個減 味 位移,2個 灌 關係,6個 等...

C語言運算子優先順序詳細列表與說明

說明 所有的優先順序中,只有三個優先順序是從右至左結合的,它們是單目運算子 條件運算子 賦值運算子。其它的都是從左至右結合。具有最高優先順序的其實並不算是真正的運算子,它們算是一類特殊的操作。是與函式相關,與陣列相關,而 及.是取結構成員。其次是單目運算子,所有的單目運算子具有相同的優先順序,因此在...