運算子是一種向變異程式說明乙個特定的數學或邏輯運算的符號。主要有三大類:算術運算子、關係運算與邏輯運算子、按位運算子。除此之外,還有一些用於完成特殊任務的運算,如賦值運算子、條件運算子、逗號運算子等。c語言的運算子歸納如下:
(1)算術運算子「+」、「-」、「 * 」、「 / 」、「 % 」。
(2)關係運算子「>」、「<」、「==」、「>=「、」<=」、「!=」。
(3)邏輯運算子「!」、「&&」、「||」。
(4)位運算子「<<」、「>>」、「~」、「|」、「^」、「&」。
①:「按位與」運算子(&)全1為1,有0則0。0&0=0,1&0=0,1&1=1
②:「按位或」運算子(|)有1則1,全0則0。0|0=0,1|0=1, 1|1=1
③:「異或」運算子(^)相同為0,不同為1。0^0=0,1^0=1,1^1=0
(5)賦值運算子「=」及其擴充套件賦值運算子。
(6)條件運算子「?」、「:」。
(7)逗號運算子「,」。
(8)指標運算子「 * 」、「&」。
(9)求位元組數運算子sizeof。
(10)強制型別轉換運算子。
(11)分量運算子「 . 」和「—>」。
(12)下標運算子「 [ ] 」。
一、算術運算子與表示式
1.運算子
c語言基本的算術運算子共有5種:
+(加)、-(減)、*(乘)、/(除)、%(取餘,模運算)
它們都是雙目運算子,即運算子要求有兩個運算元。
(1)要求%運算左右兩數必須為整形資料,如7%4的值為3。
(2)兩個整數相除,結果為整數,捨去小數部分。
(3)參加運算的兩個數中有乙個數為實數,則結果為double型,因為所有的實數都按double型進行運算。
(4)字元型資料可以和數值型資料混合運算。因為字元型資料在計算機內部是用乙個位元組的整形數表示的。
2.算術表示式
(1)算術表示式定義
用算術運算子和括號將運算物件連線起來,符合c語言規則的式子,稱為算術表示式。運算物件包括常量、變數、函式等。
(2)運算子的優先順序和結合性
和數學一樣,c語言的算術表示式運算時,運算子是有優先順序高低之分的,遵循的原則是「先乘除,後加減」。「%」運算與乘除處於同一優先順序都高於加減。
若乙個運算物件兩側的運算子優先順序相同時,則按規定的「結合方向」處理,c語言規定運算子結合性為「自左至右」。
(3)型別轉換
如果乙個運算子兩側的資料型別不同,先自動進行型別轉換,使兩者具有同一型別,然後再進行運算。
(4)取負值運算子
c語言的取負值運算子是「-」(負號)。它是一元運算子,例如:
-x,-b
負值運算的優先順序高於算術運算子的優先順序。
(5)自增與自減運算子
c語言的自增運算子為「++」,自減運算子為「–」,其操作物件只能是變數。作用是使變數的值增1或減1,例如:
++i,–i(在使用i之前,i值先加(減)1)
i++ , i– (在使用i之後,i值再加(減)1)
(6)自增與自減運算子高於算術運算子優先順序,與負值(-)運算子同級。
*例:i=2;
j=-i++;
「++」和「-」是同級優先關係。
按從右至左結合方向,表示式-i++相當於-(i++),計算順序是:
①先計算表示式i++,表示式取i的值為2,然後變數i增1;
②2再做取負值運算,表示式的值為-2;
③將-2賦給變數j。
結果:j=-2,i=3。*
(7)運算子優先順序關係和結合方向。
①從運算子的優先順序來看,可描述如下:
(++,–,-,sizeof,!)>(,/,%)>(+,-)>(<<,>>)>(<,<=,>,>=)>(==,!=)>(&(按位與))>(^(按位異或))>(|(按位或))>(&&(邏輯與))>(||(邏輯或))>(?,:(條件運算))>(=,+=,-=,=,/=,%=,>>=,<<=,&=,^=,|=)>(,(逗號))
②幾種主要運算子的結合方向
運算子 運算類別 結合方向
() 自左至右
++、–、- 單目運算 自右至左
*、/、% 雙目運算 自左至右
+、- 雙目運算 自左至右
<、<=、>=、==、!= 雙目運算 自左至右
, 順序求值 自左至右
二、賦值運算子與賦值表示式
(1).賦值運算子
c語言的賦值運算子為「==」,它的作用是將乙個資料賦給乙個變數。
(2).賦值表示式
①賦值表示式
《變數》《賦值運算子》《表示式》
賦值表示式當中的「表示式」,又可以是乙個賦值表示式
②優先順序
賦值運算子優先順序低於算術運算子、關係運算子和邏輯運算子
③復合賦值運算子
x+=5————>x=x+5;
x*=y+8———->x=x*(y+8);
x%=3————>x=x%3;
a*=b————->a=a*b
復合賦值表示式:
《變數名》《復合賦值運算子》《表示式》
三、逗號運算子和求位元組運算子
(1)、逗號運算子和逗號表示式
c語言提供一種特殊運算子——逗號運算子。用它將兩個表示式連線起來,如a+b,a+c稱為逗號表示式。逗號表示式的一般形式為:
表示式1,表示式2
逗號表示式的求解過程是:先求解表示式1,再求解表示式2。整個逗號表示式的值是表示式2的值。
逗號表示式的一般形式可擴充套件為:
表示式1,表示式2,…,表示式n
它的值為表示式n的值。
(2)求位元組運算子sizeof
c語言的sizeof是乙個單目編譯狀態運算子,它返回變數或括號中的型別修飾字元的位元組長度,一般形式為:
sizeof(變數名)
sizeof(型別名)
四、條件運算子
條件運算子要求有三個操作物件,稱三目運算子。它由兩個符號「?」和「:」組成,其一般形式為:
《表示式1>?《表示式2>:《表示式3>
它的運算順序是先求表示式1的值,如果它的值為真(非0值),則求表示式2的值並把它作為整個表示式的值;如果表示式1的值為假(0假),則求表示式3的值冰把它作為整個表示式的值。
C語言 運算子與表示式
1.運算子 用於進行某種運算的符號 通過涉及到的數目分為單目運算子 i 雙目運算子 三目運算子 判斷 a b 在c語言中a b 是不等價與 b a 的,ru i i j 與 i j i c語言運算優先順序,單目運算子 算術運算子 關係運算子 邏輯運算子 條件運算子 賦值運算子 逗號運算子 1 算術運...
C 運算子與表示式
作用 用於處理四則運算 算術運算子包括以下符號 運算子術語示例結果 正號 33 負號 3 3 加 10 515 減10 55 乘10 550 除10 52 取模 取餘 10 31 前置遞增 a 2 b a a 3 b 3 後置遞增 a 2 b a a 3 b 2 前置遞減 a 2 b a a 1 b...
C 運算子與表示式
作用 用於處理四則運算 算術運算子包括以下符號 運算子術語示例結果 正號 33 負號 3 3 加 10 515 減10 55 乘10 550 除10 52 取模 取餘 10 31 前置遞增 a 2 b a a 3 b 3 後置遞增 a 2 b a a 3 b 2 前置遞減 a 2 b a a 1 b...