C語言中的操作符和表示式

2021-08-19 08:52:14 字數 1981 閱讀 8510

1.算數操作符

操作符作用

+兩個數相加,1+1=2

-兩個數相減,1-2=-1

*兩個數相乘,1*2=2

/兩個數相除,5/1=5

%取模,即結果為兩數相除的餘數,3%6=0

注:<1>%操作符兩個運算元必須為整數,其他的操作符可以用作整數和浮點數。

<2>對於/操作符來說,兩個運算元都為整數執行整數除法,只要有浮點數就執行浮點數除法。 

2.移位操作符與位操作符

操作符描述

>> 

右移操作符,左運算元的二進位制右移右運算元指定的位數。

<< 

左移操作符,左運算元的二進位制左移右運算元指定的位數

&位元位按位與,1&1=1,1&0=0,0&1=0,0&0=0

|位元位按位或,1|1=1,1|0=1,0|1=1,0|0=0

^位元為按位異或,1^1=0,1^0=1,0^1=1,0^0=1

注:<1>移位操作符與位操作符都是在對位元位進行操作,左移操作符移位,左邊丟棄,右邊補0。

<2>右移操作符移位分為邏輯移位和算數移位,邏輯移位左邊補0,右邊丟棄,算數移位左邊補符號位,右邊丟棄。

對於移位操作符,不要移動負號位!

<3>位操作符的兩個運算元必須為整數。左移一位相當於十進位制乘以2,右移一位相當於十進位制除以2

3.賦值操作符

操作符描述

=簡單的賦值,把右運算元賦值給左運算元

+=加且賦值運算子,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

<<=

左移且賦值運算子,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

4.單目操作符

操作符描述

邏輯反操作

負值正值

間接訪問操作符(解引用操作符)

對乙個數的二進位制按位取反

前置、後置--

前置、後置++

取位址(型別)

強制型別轉換

sizeof

操作符的型別長度(以位元組為單位)

注:<1>前置++,--

若a=3,x=++a,先對a進行自加,再使用a,表示式x的值為4,x=--a,先對a進行自減,再使用a,x的值為2

<2>後置++,--

若a=3,x=a++,先使用a,再對a進行自加自減操作

<3>int arr1[5] = ;

char arr2[5] = ;

使用sizeof求字串長度,sizeof(arr1) = 20,sizeof(arr2) = 5,

sizeof求操作符長度是以位元組為單位的

5.關係操作符和邏輯操作符

操作符描述

左運算元大於右運算元,符合則為真

左運算元大於等於右運算元,符合則為真

左運算元小於右運算元,符合則為真

左運算元小於等於右運算元,符合則為真

左運算元等於右運算元,符合則為真

左運算元不等於右運算元,符合則為真

邏輯與運算,兩個運算元都為真則表示式才為真

邏輯或運算,兩個運算元都為假則表示式才為假

邏輯非,轉換邏輯狀態,把真轉為假

注:<1>位操作符與邏輯操作符的區別,位操作符是位元位之間進行邏輯判斷,邏輯操作符是表示式進行邏輯判斷

6.條件操作符

條件?表示式1:表示式2

若條件滿足,則執行表示式1,否則執行表示式2

7.逗號表示式

表示式1,表示式2,......,表示式n,

表示式從左往右依次執行,整個表示式的結果是最後乙個表示式的結果。

C語言操作符和表示式

5 2 2 5 2 1注 1.除 操作符之外,其他的幾個操作符均可作用與整數和浮點數,但需要注意結果列印的格式和精度缺失。2.對於 操作符,如果兩個數都為整數,執行整數除法,而只要有浮點數執行的就是浮點數除法。3.操作符的兩個運算元必須為整數。返回的是整除之後的餘數。左移操作符 移位規則 左邊拋棄 ...

C語言 操作符和表示式

算術操作符 c提供了所有常用的算術操作符 除了 操作符,其餘的操作符是既適用於浮點型別又適用於整數型別 為取模操作符,接受兩個整型運算元,把左運算元除以右運算元,但其返回的值是餘數而不是商。移位操作符 二進位制 0和1 移位操作只是簡單地把乙個值的位向左或向右移動。左移位中,值最左邊的幾位被丟棄,右...

C語言 操作符和表示式

加法操作符 減法操作符 乘法操作符 除法操作符 取餘操作符 注意 右移操作符 左移操作符 注意 原值 0000 1011 11 1 0000 0101 5 11 2 1 2 0000 0010 2 11 2 2原值 0000 1011 11 1 0001 0110 22 11 2 1 2 0010 ...