[英]Do you know a mental device or trick to learn operator precedence and associativity?
這是與我的侄子朋友的對話,他是來自大學的家。 就個人而言,除了最常用的那些之外,我從未發現它非常重要,只是使用括號。 但我不必參加他的考試。 有什么聰明的嗎?
編輯嘛,這是一個幾乎一致的SO! 如果只有教授聽了。
我知道這可能對你的考試沒有幫助,但是我會為其他可能偶然發現這個問題的人回答這個問題:
除了“常見情況”,例如算術之外,不要試圖記住運算符優先級。 如果您的陳述不清楚,可將其拆分為多個陳述或折疊在括號中。
鑒於有16個級別的優先級,我認為沒有一個簡單的技巧來記住它們(沒有“Roy G Biv”或我知道的其他助記符)。
IMO,要記住的重要事項是postfix>一元(即*p++
== *(p++)
),一元>算術( ~a+b
== (~a)+b
),按位>邏輯( a|b&&c
= = (a|b)&&c)
),條件,賦值和逗號運算符按順序組成底部3( a=b,c
== (a=b),c
)。
這就是發明參考手冊的原因。 當然,這在考試期間沒有幫助。
我要記住的操作符優先級(除了算術,與紙上的算術相同)是一元運算符始終具有優先權。 除此之外,我查閱並使用括號,正如史蒂文所暗示的那樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.