運算子的基本概念:
運算子是告訴編譯程式執行特定算數或邏輯操作的符號。
運算子的分類:
按照功能劃分:算術運算子、關係運算子、邏輯運算子、按位運算子。
運算子根據參與運算的運算元的個數分為:
單目運算,雙目運算 和三目運算子。
單目運算子:只有乙個運算元. 如: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型別,一般情況下都是關係表示式,整個邏輯與運算的結果...