日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

巧解C语言运算符的优先级和结合性

發布時間:2023/12/2 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 巧解C语言运算符的优先级和结合性 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本篇文章我們從一個例子入手講解,請看下面的代碼:

#include int main(){ int a = 16, b = 4, c = 2; int d = a b * c; int e = a / b * c; printf( "d=%d, e=%d\n", d, e); return 0; }

運行結果:
d=24, e=8

1) 對于表達式a b * c,如果按照數學規則推導,應該先計算乘法,再計算加法;b * c的結果為 8,a 8的結果為 24,所以 d 最終的值也是 24。

從運行結果可以看出,我們的推論得到了證實,C語言也是先計算乘法再計算加法,和數學中的規則一樣。

先計算乘法后計算加法,說明乘法運算符的優先級比加法運算符的優先級高。所謂優先級,就是當多個運算符出現在同一個表達式中時,先執行哪個運算符。

C語言有幾十種運算符,被分成十幾個級別,有的運算符優先級不同,有的運算符優先級相同。

一下子記住所有運算符的優先級并不容易,還好C語言中大部分運算符的優先級和數學中是一樣的,大家在以后的編程過程中也會逐漸熟悉起來。如果實在搞不清,可以加括號,就像下面這樣:

int d = a (b * c);

括號的優先級是最高的,括號中的表達式會優先執行,這樣各個運算符的執行順序就一目了然了。

2) 對于表達式a / b * c,除法和乘法的優先級是相同的,這個時候到底該先執行哪一個呢?

按照數學規則應該從左到右,先計算除法,在計算乘法;a / b的結果是 4,4 * c的結果是 8,所以 e 最終的值也是 8。這個推論也從運行結果中得到了證實,C語言的規則和數學的規則是一樣的。

當乘法和除法的優先級相同時,編譯器很明顯知道先執行除法,再執行乘法,這是根據運算符的結合性來判定的。

所謂結合性,就是當一個表達式中出現多個優先級相同的運算符時,先執行哪個運算符:先執行左邊的叫左結合性,先執行右邊的叫右結合性。

/和*的優先級相同,又都具有左結合性,所以先執行左邊的除法,再執行右邊的乘法。

3) 像 、-、*、/ 這樣的運算符,它的兩邊都有要計算的數據,每份這樣的數據都稱作一個操作數,一個運算符需要 n 個操作數就稱為 n 目運算符。例如:

  • 、-、*、/、= 是雙目運算符;

  • 、-- 是單目運算符;

  • ? : 是三目運算符(這是C語言里唯一的一個三目元算符,后續我們將會講解)。

總結

當一個表達式中出現多個運算符時,C語言會先比較各個運算符的優先級,按照優先級從高到低的順序依次執行;

當遇到優先級相同的運算符時,再根據結合性決定先執行哪個運算符:如果是左結合性就先執行左邊的運算符,如果是右結合性就先執行右邊的運算符。

C語言的運算符眾多,每個運算符都具有優先級和結合性,還擁有若干個操作數。對于沒有學到的運算符,大家不必深究,一帶而過即可,等學到時再來回顧。

聲明:

本文于網絡整理,版權歸原作者所有,如來源信息有誤或侵犯權益,請聯系我們刪除或授權事宜。

總結

以上是生活随笔為你收集整理的巧解C语言运算符的优先级和结合性的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。