建個企業(yè)網(wǎng)站有什么用哪里注冊域名最便宜
目錄
前言
一、運算符的概念與分類
二、算術(shù)運算符
三、關(guān)系運算符
?四、邏輯運算符
五、賦值運算符
六、運算符的優(yōu)先級?
總結(jié)
?
前言
本篇文章是對運算符的具體講解。
一、運算符的概念與分類
概念:
運算符就是一種告訴編譯器執(zhí)行特定的數(shù)學(xué)或邏輯操作的符號,用來表示針對數(shù)據(jù)的特定操作,也稱之為操作符。在計算機編程中,運算符用于操作數(shù)據(jù),執(zhí)行各種數(shù)學(xué)和邏輯運算,并產(chǎn)生結(jié)果。
分類:
1.根據(jù)分類對象的多少可以分為單目運算符(又名一元運算符)、雙目操作符(又名二元操作符)、三目操作符(又名三元操作符)。
2.根據(jù)運算作用不同又可以分為:算術(shù)操作符、關(guān)系操作符、邏輯操作符、位運算符、賦值運算符、雜項操作符等。
二、算術(shù)運算符
含義:
算術(shù)運算符是對數(shù)值類型變量進行運算的,屬于上述的雙目操作符,結(jié)合性是從左到右的,算術(shù)優(yōu)先級就是我們所知的?“ * 、/ 、% ”>“ +、 -”。
運算符 | 描述 | 實例 |
---|---|---|
+ | 把兩個操作數(shù)相加 | x+y得到15 |
-? | 第一個操作數(shù)減去第二個操作數(shù) | x-y得到5 |
* | 把兩個操作數(shù)相乘? | x*y得到50 |
/? | 把兩個操作數(shù)相除 | x/y得到2 |
% | 取模,結(jié)果為整除后的余數(shù) | x%y得到0 |
++ | 自增運算符,整數(shù)值加一 | x++得到11 |
-- | 自減運算符,整數(shù)值減一 | x--得到9 |
需要注意的是:
a++(a--) 與 ++a(--a)的區(qū)別,前者為先賦值后運算,后者為先運算后賦值。當(dāng)其作為一個獨立的語言使用時,是等價的。但是當(dāng)它出現(xiàn)在語句中就會有所不同。
下面通過一個實例代碼來幫助大家更好的理解:
#include <stdio.h>int main()
{int y;int x = 10;y = x++; printf("先賦值后運算:\n");printf("y 的值是 %d\n", y );printf("x 的值是 %d\n", x );x = 10;y = x--; printf("y 的值是 %d\n", y );printf("x 的值是 %d\n", x );printf("先運算后賦值:\n");x = 10;y = ++x; printf("y 的值是 %d\n", y );printf("x 的值是 %d\n", x );a = 10;c = --a; printf("y 的值是 %d\n", y );printf("x 的值是 %d\n", x );return 0;
}
程序運行的結(jié)果如下:
?? ??? ?
?? ?? ?
? ?? ?
?? ? ?
? ? ?
?? ? ?
?? ?? ?
?? ?? ? ?
三、關(guān)系運算符
含義:
關(guān)系運算符的值只能是0或1。當(dāng)運算符的值為真時,結(jié)果值都為1;反之,都為0;關(guān)系運算符也屬于雙目運算符,結(jié)合性為從左到右,優(yōu)先級為“ > 、 < 、 >= 、 <=? ”? >? " == 、 !=? "。
運算符? | 描述 | 實例 |
---|---|---|
== | 檢查倆個操作數(shù)的值是否相等,如果相等則為真? | x==y為假 |
!= | 檢查倆個操作數(shù)的值是否相等,如果不相等則為真 | x!=y為真 |
> | 檢查左操作數(shù)是否大于右操作數(shù),如果符合則為真? | x>y為真 |
< | 檢查左操作數(shù)是否小于右操作數(shù),如果符合則為真 | x<y為假 |
>=?? | 檢查左操作數(shù)是否大于等于右操作數(shù),如果符合則為真 | x>=y為真 |
<= | 檢查左操作數(shù)是否小于等于右操作數(shù),如果符合則為真 | x<=y為假 |
下面通過一個實例代碼來幫助大家更好的理解:
#include <stdio.h>int main()
{int x = 20;int y = 10;int c ;if( x == y ){printf("x 等于 y\n" );}else{printf("x 不等于 y\n" );}if ( x < y ){printf("x 小于 y\n" );}else{printf("x 不小于 y\n" );}if ( x > y ){printf("x 大于 y\n" );}else{printf("x 不大于 y\n" );}int t;t = x;x = y;y = t;if ( x <= y ){printf("x 小于或等于 y\n" );}if ( y >= x ){printf("y 大于或等于 x\n" );}return 0;}
?? 程序運行的結(jié)果如下:
?? ??
?? ??? ?
?? ?? ?
?? ??? ?
???
? ???
?
?四、邏輯運算符
含義:
用于連接多個條件的運算符,結(jié)果也是為真(1)或假(0),結(jié)合性為從右到左。
運算符? | 描述 | 實例 |
---|---|---|
&& | 稱之為邏輯與運算符,當(dāng)且僅當(dāng)倆個操作數(shù)都不為零時,條件為真。 | A&&B為假 |
|| | 稱之為邏輯或運算符,當(dāng)倆個操作數(shù)存在人一個非零時,條件為真。 | A||B為真 |
! | 稱之為邏輯非運算符,用來逆轉(zhuǎn)操作數(shù)的邏輯狀態(tài)。將真變?yōu)榧?#xff0c;假變?yōu)檎妗?/td> | !(A&&B)為真 |
下面通過一個實例代碼來幫助大家更好的理解:
#include <stdio.h>int main()
{int x = 20;int y = 10;if ( x && y ){printf("條件1為真\n" );}if ( x || y ){printf("條件2為真\n" );}x = 0;y = 10;if ( x && y ){printf("條件3為真\n" );}else{printf("條件3為假\n" );}if ( !(x && y) ){printf("條件4為真\n" );}return 0;
}
程序運行的結(jié)果如下:
? ??? ?
?? ??? ??
?? ???? ? ? ??
五、賦值運算符
含義:
賦值運算符就是將某個值賦給某個指定的變量,結(jié)合性為從右到左。
運算符? | 描述 | 實例 |
---|---|---|
=? | 簡單的賦值運算符,把右邊的操作數(shù)賦給左邊操作數(shù)?? ? | C=A+B將把A+B的值賦給C |
+= | 加且賦值運算符,把左邊操作數(shù)加上右邊操作數(shù)的結(jié)果賦值給左面的操作數(shù)? | C+=A相當(dāng)于C=C+A |
-=? | ?減且賦值運算符,把左面的操作數(shù)減右面操作數(shù)的結(jié)果賦值給左面的操作數(shù) | C-=A相當(dāng)于C=C-A |
*= | 乘且賦值運算符,把左面的操作數(shù)乘以右邊的結(jié)果賦值給左面的操作數(shù) | C*=A相當(dāng)于C=C*A |
/= | 除且賦值操作符,把左面的操作數(shù)除以右面的操作數(shù)的結(jié)果賦值給左面的操作數(shù) | C/=A相當(dāng)于C=C/A |
%= | 求模且賦值運算符,求兩個操作數(shù)的模賦值給左邊的操作數(shù) | C%=A相當(dāng)于C=C%A |
<<=?? | 左移且賦值運算符 | C<<=2等同于C=C<<2 |
>>= | 右移且賦值運算符 | C>>=2等同于C=C>>2 |
&= | 按位與且賦值運算符 | C&=2等同于C=C&2 |
^= | 按位異或且賦值運算符 | C^=2等同于C=C^2 |
|= | 按位或且賦值運算符 | C|=2等同于C=C|2 |
?下面通過一個實例代碼來幫助大家更好的理解: ??? ?
#include <stdio.h>int main()
{int a = 21;int c ;c = a;printf(" = 的運算符實例,c 的值 = %d\n", c );c += a;printf("+= 的運算符實例,c 的值 = %d\n", c );c -= a;printf("-= 的運算符實例,c 的值 = %d\n", c );c *= a;printf("*= 的運算符實例,c 的值 = %d\n", c );c /= a;printf("/= 的運算符實例,c 的值 = %d\n", c );c <<= 2;printf("<<= 的運算符實例,c 的值 = %d\n", c );c >>= 2;printf(">>= 的運算符實例,c 的值 = %d\n", c );c &= 2;printf("&= 的運算符實例,c 的值 = %d\n", c );c ^= 2;printf("^= 的運算符實例,c 的值 = %d\n", c );c |= 2;printf("|= 的運算符實例,c 的值 = %d\n", c );return 0;
}
? ?程序運行的結(jié)果如下:
?? ?? ?
? ?? ?
?? ??? ?
?? ??? ?
?? ??? ?
???
?? ??? ?
?? ?? ??
六、運算符的優(yōu)先級?
?含義:
運算符的優(yōu)先級往往會影響一個表達式的運算的結(jié)果,比如最常見的就是乘除運算的優(yōu)先級大于加減運算。
類型 | 運算符 | 結(jié)合性 |
---|---|---|
乘除 | ?*? ?/? ?% | 從左到右 |
加減 | ?+? - | 從左到右 |
后綴 | () [] ++ --? | 從左到右 |
一元 | +? -? ! ~ ++ --(type)* & sizeof | 從右到左 |
移位 | ?<<? >> | 從左到右 |
關(guān)系 | <<= >>= | 從左到右 |
相等與不等 | ==? ?!= | 從左到右 |
位與AND | & | 從左到右 |
位異或XOR?? ? | ^ | 從左到右 |
位或OR? | | | 從左到右 |
邏輯與AND | && | 從左到右 |
邏輯或OR | || | 從左到右 |
條件 | ?: | 從右到左 |
賦值 | ?=? +=? ?-=? ?*=? ?/=? ? %=? ? >>=? ?<<=? ?&=? ^= |= | 從右到左 |
逗號 | , | 從左到右 |
? ?
?
總結(jié)
? ? ? ? 本篇文章詳細地講了C語言的運算符,希望能夠幫到大家!
? ? ? ?以后還會給大家展現(xiàn)更多關(guān)于C語言的其他重要的基礎(chǔ)知識,感謝大家支持懶大王!
? ? ? ?希望這篇博客能給各位朋友們帶來幫助,最后懶大王請來過的朋友們留下你們寶貴的三連以及關(guān)注,感謝你們!
?