c語言運算優先順序,c語言優先順序是什麼?

2023-06-26 16:55:09 字數 3241 閱讀 2798

1樓:長夜熒熒

優先順序就是當表示式中有多個運算子時,先計算誰,後計算誰。打個比方,在四則運算中乘除的優先順序就高於加減。

但是c語言中的運算子除了加減乘除還有很多,我們也沒必要將所有運算子的優先順序都記住,這裡列出來各個運算子的優先順序表,實在需要用到的時候查一下表就行了。而且實際上在程式設計的時候需要考慮優先順序的情況很少,因為如果不知道優先順序高低的話,加一個括號就行了,因為括號的優先順序是最高的。

比如:k = j > i) &8 ==i)

根據優先順序的高低,完全可以寫成:

k = j > i &&8 ==i

第一種寫法是比較提倡的,因為一看就知道先計算誰後計算誰,節省了大家的時間還不容易出錯。而且加圓括號也是一種程式設計規範,因為程式不只是寫給自己看。

此外運算子還有「目」和「結合性」的概念。「目」就是眼睛的意思,一個運算子需要幾個數參與就歸為「幾目」。c語言中大多數運算子都是雙目的,比如  和  運算子;也有單目和三目的,單目運算子如邏輯非 ( 1 );三目運算子即條件運算子,?:

也是c語言中的唯一一個三目運算子。

說完了「目」的概念,再來說一說「結合性」。先來煮個栗子:

上式中乘法和除法的優先順序相同,但計算的時候是從左往右,所以乘和除的結合性就是從左往右,so easy!

c語言中大多數運算子的結合性都是從左往右,只有三個運算子是從右往左的。一個是單目運算子,另一個是三目運算子,還有一個就是雙目運算子中的賦值運算子  運算子的「結合性」也不需要死記硬背,在不斷使用中就記住了。

2樓:匿名使用者

c語言中算術運算子優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。表示式的結合次序取決於表示式中各種運算子的優先順序。優先順序高的運算子先結合,優先順序低的運算子後結合,同一行中的運算子的優先順序相同。

基本的優先順序:

1、指標最優,單目運算優於雙目運算。

2、先運算乘除後運算加減。

3、先算術運算,後移位運算,最後位運算。

4、邏輯運算最後計算。

c語言優先順序是什麼?

3樓:蘇嘉愛娛樂

c語言優先順序是:每種同型別的運算子都有內部的運算子優先順序,不同型別的運算子之間也有相應的優先順序順序。一個表示式中既可以包括相同型別的運算子,也可以包括不同型別的運算子或者函式。

當多種運算子出現在同一個表示式中時,應該先按照不同型別運算子間的優先順序進行運算。

各種運算子間的優先順序如下:數值運算子、字串運算子、關係運算子、邏輯運算子。可以用括號改變優先順序順序,使得括號內的運算優先於括號外的運算。

對於多重括號,總是由內到外強制表示式的某些部分優先執行。括號內的運算總是最優先計算。

優先順序結合性:

當一個運算物件兩側的運算子優先順序別相同時,則按運算子的結合性來確定表示式的運算順序。關於結合性的概念在其他高階語言中是沒有的,這是c語言的特點之一。在標準c語言的文件裡,對操作符的結合性並沒有做出非常清楚的解釋。

c語言也將34種運算子規定了不同的結合性。大多數運算子結合方向是「自左至右」,即:先左後右,也叫「左結合性」

例如 a-b + c,表示式中有-和+兩種運算子,且優先順序相同,按先左後右結合方向,先圍繞減號結合,執行a-b的運算,再圍繞加號結合,完成運算(a-b) +c。除了左結合性外,c 語言有三類運算子的結合方向是從右至左,也叫「右結合性」

以上內容參考:百科-運算子優先順序。

c語言優先順序是什麼?

4樓:電子數碼

c語言的運算子包括單目運算子、雙目運算子、三目運算子,優先順序如下:

第1優先順序:各種括號,如()、等、成員運算子。

第2優先順序:所有單目運算子,如++、等。

第3優先順序:乘法運算子*、除法運算子/、求餘運算子%。

第4優先順序:加法運算子+、減法運算子-。

第5優先順序:移位運算子<<、

第6優先順序:大於運算子>、大於等於運算子>=、小於運算子<、小於等於運算子<=。

第7優先順序:等於運算子==、不等於運算子!=。

第8優先順序:按位與運算子&。

第9優先順序:按位異或運算子^。

第10優先順序:按位或運算子|。

第11優先順序:邏輯與運算子&&。

第12優先順序:邏輯或運算子||。

第13優先順序:三目條件運算子?。

第14優先順序:各種賦值運算子,如=、+等。

第15優先順序:逗號運算。

c語言中的運算子優先順序是怎麼樣的?

5樓:高能答題王

下面按優先順序從高到低的順序總結一下各種運算子,每一條所列的各運算子具有相同的優先 級,對於同一優先順序的多個運算子按什麼順序計算也有說明,雙目運算子就簡單地用「左結 合」或「右結合」來說明了。和指標有關的運算子* &也在這裡列出來了,以後再詳細解釋。

1 、識別符號、常量、字串和用()括號套起來的表示式是組成表示式的最基本單元,在運算中做 運算元,優先順序最高。

2、字尾運算子,包括陣列取下標、函式呼叫()、結構體取成員。、指向結構體的指標取成員- >字尾自增++、字尾自減--。如果一個運算元後面有多個字尾,按照離運算元從近到遠的順序 (也就是從左到右)依次運算,比如,先算,再++,這裡的。

name應該看成a的 一個字尾,而不是把。 看成雙目運算子。

3、單目運算子,包括字首自增++、字首自減--、sizeof、型別轉換()、取地址運算&、指標間接 定址*、正號+、負號-、按位取反~、邏輯非! 。如果一個運算元前面有多個字首,按照離運算元 從近到遠的順序(也就是從右到左)依次運算,比如!

a,先算~a,再求!。

4、乘*、除/、模%運算子。這三個運算子是左結合的。 5、加+、減-運算子。左結合。

6、移位運算子《和》。左結合。

7、關係運算子< >左結合。

8、相等性運算子==和!=。左結合。

9、按位與&。左結合。

10、按位異或^。左結合。

11 、按位或|。左結合。

12、邏輯與&&。左結合。

13、邏輯或||。左結合。

14、條件運算子:?。在第 2 節 「if/else語句」講過dangling-else問題,條件運算子也有類似的問 題。例如a ?

b : c ? d :

e是看成(a ? b : c) ?

d : e還是a ? b :

c ? d : e) ?

c語言規 定是後者。

15、賦值=和各種複合賦值(*=右結合。

16、逗號運算子。左結合。

關於c運算子優先順序和的,C中運算子優先順序的問題

a和a 含義不同啊,a 表明先執行後加減,所以還是從0開始的。c 中運算子優先順序的問題 假定陣列是 int y 指標是 int symbol y int x 222 語句 symbol x 因為是字尾 表示式裡不自增,故計算分2步走,版1 1 symbol x 1 2 symbol symbol ...

c語言中的運算子優先順序高低是什麼意思

運算子用於執行程式 運算,會針對一個以上運算元專案來進行運算。例如 2 3,其運算元是2和3,而運算子則是 運算子的優先順序是從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。表示式的結合次序取決於表示式中各種運算子的優先順序。優先順序高的運算子先結合,優先順序低的運算子後結...

c語言中運算子有哪幾種,優先順序順序是怎樣

c語言中,運算子除了常見的三大類,算術運算子 關 系運算子與邏輯運算子之外,還有一些用於完成特殊任務的運算子。運算子的運算優先順序共分為15 級,1 級最高,15 級最低。在表示式中,優先順序較高的先於優先順序較低的進行運算。而在一個運算量兩側的運算子 優先順序相同時,則按運算子的結合性所規定的結合...