c++自底向上算符优先分析_c语言运算符的优先级
點擊上方關注我們獲取更多
運算符的優先級&結合性
當c語言出現表達式時,表達式的運算結果就會和運算符的優先級有關,優先級高的先運算。優先級相同時,根據運算符的結合性,左結合的運算符先算左邊,右結合的運算符先算右邊。
對于優先級:算術運算符、關系運算符、邏輯運算符、賦值運算符。邏輯運算符中“邏輯非”除外。
例如:
算術運算符(+、-、*、/)
對于表達式a+b*c,優先級和數字規則一樣,先乘除后加減。
c語言中的加減乘除運算和數學中的運算規則基本相似,但有兩點需要強調:
兩個整數相除結果仍為整數,即只取商的整數部分,不取小數部分。
%是取兩整數相除后余數的運算符。
注意:&只適用于整數運算
如:
運行結果而對于表達式a\b*c,除法和乘法的優先級是相同的,這個時候到底應該先執行哪一個呢?
這是根據優先級的結合性來判定的。/和*的優先級相同,又都具有左結合性,所以向執行左邊的除法,在執行右邊的乘法。
自加自減運算符(++、--)
需要重點說明當然是,++在變量前面和后面是有區別的:
++在前面叫做前自增(例如++a)。前自增先進行自增運算,再進行其他操作;
++在后面叫做后自增(例如a++)。后自增先進行其他操作,在進行自增運算;
自減(--)也一樣,有前自減和后自減之分。
例如:
運算結果
a,b,c,d的輸出結果相信大家沒有疑問,下面重點說a1,b1,c1,d1:
1)對于a1=++a,先執行++a,結果為11,在將11賦值給a1,所以a1的最終值為11.而a經過自增,最終的值也為11。
2)對于b1=b++。b的值并不會立馬加1,而是先把b的原來值交給b1,然后再加1.b原來值為20,所以b1的值也就為20.而b經過自增,最終值為21。
自減(--)也是如此。
如:
我們來看一下:
1)執行語句①時,因為是后自減,先進行a-b運算,結果是11,然后b在自減,就變成了0;最后再將a-b的結果(也就是11)交給c,所以c的值是11.
2)執行語句②之前,b的值已經變成0,。對于d=(++a)-(--b),a會先自增,變成13,然后b再自減,變成-1,最后在計算13-(-1),結果是14,交給d,所以最終是14。
END
關注我們
品嘗美食
編輯||朱娜榮
審核||楊文寧
總結
以上是生活随笔為你收集整理的c++自底向上算符优先分析_c语言运算符的优先级的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python图书馆管理系统实验报告_基于
- 下一篇: 插上 u盘提示格式化怎么办啊 U盘插上提