C語言運算子的優先順序和結合性例項詳解

2022-09-28 20:27:28 字數 1004 閱讀 8026

運算子是告訴編譯程式執行特定算術或程式設計客棧邏輯操作的符號。c語言的運算範圍很寬,把除了控制語句和輸入輸出以外的幾乎所有的基本操作都作為運算子處理。主要分為三大類:算術運算子程式設計客棧、 關係運算子與邏輯運算子。除此之外,還有一些用於完成特殊任務的運算子。

先來看乙個例子:程式設計客棧

#include

int main()

執行結果:

12+3*5=27

a=2, c=2

1) 對於表示式12+3*5,很明顯先進行乘法運算,計算3*5,結果為15,再進行加法運算,計算12+15,結果為27。也就是說,乘法的優先順序比加法高,要先計算,這與數學中的規則是一樣的。

所謂優先順序,就是當有多個運算子在同乙個表示式**現時,先執行哪個運算子。如果不想按照預設的規則執行,可以加( ),例如(12+3)*5的結果為 75,(2+5)*(10-4)的結果為 42。大部分情況下,它們的規則和數學中是相同的。

2) 對於語句賦值語句a=b=c;,先執行b=c,再執行a=b,而不是反過來,這說明賦值操作符=具有右結合性。

所謂結合性,就是當乙個運算子多次出現時,先執行哪個運算子。先執行右邊的叫右結合性,先執行左邊的叫左結合性。

表示式(expression)和語句(statement)的概念在c語言中並沒有明確的定義:

表示式可以看做乙個計算的公式,往往由資料、變數、運算子等組成,例如3*4+5、a=c=d等,它程式設計客棧的結果必定是乙個值;

語句的範圍更加廣泛,不一定是計算,不一定有值,可以是某個操作、某個函式、選擇結構、迴圈等。

值得注意的是:以分號;結束的往往稱為語句,而不是表示式,例如3*4+5;、a=c=d;等。

3) 像 +、-、*、/ 這樣的運算子,它的兩邊都有資料,例如 3+4、a*3 等,有兩個運算元,我們稱這樣的運算子為雙目運算子。後面還會講解單目運算子和三目運算子。

以上就是對 c語言運算子的優先順序和結合性的知識整理,希望程式設計客棧對學習c語言的同學有所幫助。

本文標題: c語言運算子的優先順序和結合性例項詳解

本文位址:

C語言 運算子的優先順序和結合性

1 語言規定了運算子的優先順序和結合性。所謂結合性是指,當乙個運算元兩側的運算子具有相同的優先順序時,該運算元是先與左邊的運算子結合,還是先與右邊的運算子結合。自左至右的結合方向,稱為左結合性。反之,稱為右結合性。結合性是 語言的獨有概念。除單目運算子 賦值運算子和條件運算子是右結合性外,其它運算子...

運算子優先順序和結合性

所謂優先順序就是當乙個表示式中有多個運算子時,先計算誰,後計算誰。這個其實我們在小學學算術的時候就學過,如1 4 2。但是c語言中的運算子已經遠不止四則運算中的加減乘除了,還有其他很多運算子。當它們出現在同乙個表示式中時先計算誰後計算誰呢?所以本節還是有必要講一下的。最後我還會將所有運算子展示出來,...

運算子優先順序和結合性

優先順序 運算子含義 運算物件個數 結合順序1 初等運算子 自左至右 下標運算子 指向結構體成員運算子 結構體成員運算子2!單目運算子 1 單目運算子 自右至左 負號 指標運算子 sizeof 型別 型別轉換運算子3 乘法算數運算子 2 雙目運算子 自左至右 4 2 雙目運算子 自左至右 5 2 雙...