黑馬程式設計師 運算子

2021-07-02 23:26:25 字數 3758 閱讀 2699

運算子的基本概念:

運算子是告訴編譯程式執行特定算數或邏輯操作的符號。

運算子的分類

按照功能劃分:算術運算子、關係運算子、邏輯運算子、按位運算子。

運算子根據參與運算的運算元的個數分為:

單目運算,雙目運算 和三目運算子。

單目運算子:只有乙個運算元. 如:i++ 、!、 sizeof .

雙目運算子:有兩個運算元 如 : a+b

三目運算子: c語言中唯一的乙個。也稱作問好表示式。 a>b ? 1 : 0

運算子的優先順序

c語言中,運算子的運算優先順序共分為15級,1級最高,在表示式中,優先順序較高的先於優先順序較低的進行運算。

而在乙個運算時運算量兩側的運算子優先順序相同時,則按運算子的結合性所規定的結合方向處理。

運算子的結合性

c語言中各運算子的結合性分為兩種,即左結合性(從右向左)和右結合性(自右至左)。

算數運算子

算術運算子都是雙目運算子,優先順序相同時具有左結合性。

求餘運算子的使用注意。

m%n m除以n之後,取得餘數部分。

m和n都不能為小數

m<0 結果為負數

n<0 正負性取決於m

賦值運算子

1、賦值表示式

a+b 10+a f1+num 以上都是表示式。

將同型別的資料(如常量、變數、函式等),用運算符號按一定的規則連線起來、有意義的式子稱為表示式。

表示式可以是常量也可以是變數或算式,在表示式中又可以分為:演算法表示式、邏輯表示式和字串表示式。

表示式的特點:

表示式是乙個有意義的式子,所以一定有返回值。

2、賦值運算子 (『=』號 ) 在優先順序列表中排名十四。

在c語言中,把「=」定義為運算子,從而組成賦值表示式。如: x=a+b , y = i++ + –j

作用: 把等號右側的值賦給等號左側的變數。

注: 等號的左側必須是變數。

賦值表示式的功能是:計算表示式的值在賦予左邊的變數。

賦值運算子結合性: 右結合(自右向左)。

復合賦值運算子

+= a+=3 ;——> a = a+3

-= a-=3; ——>a = a-3

= a=3;——> a = a*3

/= a/=3——> a = a/3

%= a%=3 ——> a = a %3

自增自減運算子

1、在程式設計過程中,經常遇到「i= i+1」和「i= i-1」這兩種極為常用的操作。c語言為這種操作提供了2個更為簡潔的運算子,即 ++和–,分別叫做 自增運算子 和自建運算子。它們是單目運算子,具有右結合性。

2、自增自減運算子的求值過程。

1)、字首表示式:++x,–x,其中x表示變數名,先完成變數的自增自減1運算,再用x的值作為表示式的值;即「先變後用」。

也就是變數的值先變,再用變數的值參與運算。

2)、字尾表示式:x++,x–,先用x的當前值作為表示式的值,在進行自增自減1運算,即「先用後變」,也就是先用變數的值參與運算,變數的值在進行自增自減變化。

sizeof運算子

單目運算子,以位元組的形式給出了其運算元的儲存大小。運算元可以是表示式或括號內的型別名。運算元的儲存大小由運算元的型別決定。 用法 sizeof(常量/變數)

c語言中判斷資料型別或者表示式長度符;不是乙個函式,位元組數的計算在程式編譯時進行,而不是在程式執行的過程中才計算出來!

字元型常量和變數的儲存大小是有區別的。 常量占用「4」位元組 , 變數占用『1』位元組。

用在常量和變數的時候,可以省略括號。

逗號運算子

在c語言中,「,」是一種運算子,稱為逗號運算子。

其功能是把兩個表示式連線起來組成組成乙個表示式,稱為逗號表示式。

a = (a+b,c+2)

其一般形式為: 表示式1,表示式2.

求值過程是:分別求兩個表示式的值,並以表示式2的值作為整個逗號表示式的值。

運算規則: 從左到右,依次計算每個表示式的值,取最後乙個表示式的值作為整個表示式的值。

#include 

int main(int argc, const

char * argv)

最後result的值為10。

逗號運算子的使用注意:

1)逗號運算子可以巢狀使用

(a++,(a+3,b+5,z=a+b))
2)有時候,不太注重逗號表示式的值

3)並不是所有出現逗號的地方都能組成逗號表示式,比如定義多個變數的時候

關係運算子

1、c語言中的真假性。

在c語言中所有數值都有真假性,非零即真,只有0為假;

關於運算子返回值只有兩個,要麼真(1),要麼是假(0);

2、關係運算子:

( > 、=、<=) 運算優先級別在第六級

(==、!=)優先級別在第七級

關係運算子都是雙目運算子,具有左結合性。

關係表示式:用關係運算子連線的式子。

邏輯運算子

邏輯運算子的概念:

c語言中提供了三種邏輯運算子:

&& (與)(第十一級) 雙目運算子;具有左結合性

||(或)(第十二級) 雙目運算子;具有左結合性

!(非)(優先順序在第二級) 單目運算子,具有右結合性

邏輯表示式: 用邏輯運算子連線的表示式;

其中的表示式可以依舊是邏輯表示式,從而形成了巢狀的形式,例如:(a&&b)&&c;

根據邏輯運算子的左結合性,上面的式子也可以寫為:a&&b&&c ;

邏輯 表示式的值是式子中各種邏輯運算的最後值,以 「1」 和「0」分別代表「真」和「假」;

1)與運算(&&),參與運算的兩個值都為真時,結果才為真,否則為假。 口訣: 一假則假;

2)或運算(||),參與運算的兩個值只要有乙個為真,結果就為真。兩個值都為假時,結果為假;口訣:一真則真,同假則假;

3) 非運算(!),取反,真變假,假變真。

邏輯運算的短路問題:

與 短路 :&& 只要第乙個條件表達為假,那麼後面的條件表達就不參與運算了。

或短路: || 只要第乙個表示式為真,那麼後面的條件表達就不參與運算了。

三目運算子

也稱為條件運算子, 由 ?和:,組成,有三個參與運算的量;

格式 : 表示式1?表示式2:表示式3

如果表示式1成立的話,執行表示式2,不成立的話執行表示式3.

例如: if(a>b) max = a ; 可用條件表示式寫為: max=(a>b)?a:b;

else max =b;

條件運算子?和:是一對運算子,不能分開單獨使用。

條件運算子的結合方向是從右至左。

例如:

a>b?a:c>d?c:d 應理解為: a>b?a:(c>d?:c:d),這是條件表示式的巢狀,即其中的表示式3又是乙個條件表示式。

黑馬程式設計師 運算子與陣列

asp.net android io開發s net培訓 期待與您交流!運算子 1 算術運算子 常見的幾種算數運算子 取餘數,取模 顧名思義這些運算子就是我們數學中常見的 加 減 乘 除和取餘 運算。乙個小小的簡單案例 2 復合運算子 常見的幾種 符合運算子 注 a 9 a a 9 其餘的都一樣運算 ...

黑馬程式設計師 運算子以及前加後加

asp.net android ios開發 net培訓 期待與您交流!概念 運算子 即為自加,使運算元自加1,是乙個一元運算子。它可出現在運算元的前面和後面。第一種形式是字首增量操作。該操作的結果是運算元加 1 之後的值。第二種形式是字尾增量操作。該運算的結果是運算元增加之前的值。數值型別和列舉型別...

黑馬程式設計師 關於邏輯運算子的總結

target blank asp.net android ios開發 target blank net培訓 期待與您交流!1.常用的邏輯運算子有 邏輯與運算 邏輯或運算 邏輯非運算 2.首先看邏輯與運算 邏輯與連線的兩個表示式,要能夠求解成bool型別,一般情況下都是關係表示式,整個邏輯與運算的結果...