C語言-操作符詳解

2022-12-15 14:08:59 來源:51CTO博客

前言

C語言操作符是說明特定操作的符號,它是構造C語言表達式的工具。C語言的運算異常豐富,除了控制語句和輸入輸出以外的幾乎所有的基本操作都為操作符處理。除了常見的三大類,算術操作符,關系操作符與邏輯操作符符之外,還有一些用于完成特殊任務的運算符,比如位算符。


(資料圖片僅供參考)

一、算術操作符

+ , - , *, /, %

1、除 (/):6 / 5 — 結果為整數

6 / 5.0 或 6.0 / 5 或6.0 / 5.0 —— 結果為浮點數

其中直接寫5.0 ,6.0 數據類型為double

總結:如果想要相除結果為小數,則,除數或者被除數需要有一個為浮點數。

2、模(%):

%操作數的兩個操作數必須為整數,返回的是整除后的余數。

除%操作符外,其余的操作符可以作用于整數和浮點數

二、移位操作符

<< >>

1、左移(<<) 二進制位左移

規則:左邊丟棄,右邊補零

2、右移(>>) 二進制位右移

規則:算術右移——右邊丟棄,左邊補原符號位(正-0,負-1)

邏輯右移——右邊丟棄,左邊補零

正整數的反碼 == 補碼 == 源碼

注意事項:左右移不改變原數值

三、位操作符

& ,| , ^

1、按位與(&)

按二進制位—有零則零

2、按位或(|)

按二進制位—有一則一

3、按位異或(^)

按二進制位—相同為零,相異為一

a ^ a == 0

a ^ 0 == a

注:他們的操作數必須是整數

4、^的運用

例題:不使用第三個變量,交換兩個變量的值

四、賦值操作符

=,+=,-=,*=,/=,<<=,>>=,%=

簡單賦值:=

復合賦值:+=,-=,*=,/=,<<=,>>=,%=

注意事項:= - 賦值 ,== - 判斷相等

五、單目操作符(只有一個操作數)

!(邏輯反操作),-(負值),+(正值),&(取地址),sizeof(操作數類型長度,單位:字節), ~(按位取反),--(前置,后置--),++(前置,后置++),*(解引用操作符,間接訪問操作符),(類型)(強制類型轉換)

注意事項:sizeof括號中的表達式不參與運算 !

按位取反(~),包括符號位也取反

六、關系操作符

> ,>=, <, <= ,!= ,==

警告:警惕在編程的過程中==和=不小心寫錯,出現的錯誤

比較兩個字符串,不能使用“==”

七、邏輯操作符(返回真假,布爾值)

&& (邏輯與),||(邏輯或)

注意:需要區分&(按位與)和&&,|(按位或)和||的區別

八、條件操作符(三目操作符)

exp ? exp1 : exp2

exp:條件

exp1:真—執行

exp2:假—執行

九、逗號表達式

exp1,exp2,exp3,......expN

逗號表達式,用逗號隔開的表達式,從左到右一次執行,整個表達式的結果是最后一個表達式的結果。

十、下標引用,函數調用,結構成員

1、[]下標引用操作符

操作數:有兩個,一個數組名+一個索引值

2、()函數調用操作符

操作數:函數名+參數,(因為參數不固定,所以操作數的數量不固定)

3、結構成員操作符(訪問一個結構體的成員)

1、“ . ”結構體變量名.成員名

2、“->”結構體指針->成員名

十一、表達式求值

表達式求值的順序一部分由操作符 的優先級和結合性決定。

有些表達式的操作數在求值的過程中可能需要轉換為其他類型。

復雜表達式的求值有三個影響的因素。

1.操作符的優先級

2操作符的結合性

3.是否控制求值順序。

兩個相鄰的操作符先執行哪個?取決于他們的優先級。如果兩者的優先級相同,取決于他們的結合性。

制作不易,喜歡就點贊收藏吧!!!持續更新中~~~

標簽: 二進制位 注意事項 函數調用

上一篇:熱議:嵌入式:ARM指令集分類及編碼
下一篇:當前快訊:【JVM故障問題排查心得】「內存診斷系列」Docker容器經常被kill掉,k8s中該節點的pod也被驅趕,怎么分析?