编程c语言顺口溜,C语言运算符优先级顺口溜[转]
醋壇酸味灌?味落跳福豆?共44個運算符?醋-初等,4個: ( ) [ ] -> 指向結構體成員 . 結構體成員?壇-單目,9個: ! ~ ++ -- -負號 (類型)?*指針
&取地址 sizeof長度 (結合方向:自右向左)
酸-算術,5個: * / % + -減?味-位移,2個: << >>?灌-關系,6個: < <= > >=?==
等于?!= 不等于?味-位邏,3個:?& 按位與?^ 按位異或 |
按位或?落-邏輯,2個: && 邏輯與 || 邏輯或?跳-條件,1個,三目: ?
:?(結合方向:自右向左)
福-賦值,11個: = += -= *= /= %= >>= <<= &= ^=
|=?(結合方向:自右向左)
豆-逗號,1個: ,?結合方向自右向左的只有三類:賦值、單目和三目,其它的都是從左至右結合。
注意:自己今天寫程序時候把關系運算符號和位邏輯的優先級弄反。盡量用括號,就不出問題。
如:if(P1OUT&BIT0==0)P1OUT
^=BIT0;?//判斷p1.0是否輸出為0,是就翻轉,即點亮LED.
這行程序是錯誤的。可兩邊加上括號,即if((P1OUT&BIT0)==0),或是直接用:P1OUT|=BIT0;
具有最高優先級的其實并不算是真正的運算符,它們算是一類特殊的操作。()是與函數相關,[]與數組相關,而->及.是取結構成員。
其次是單目運算符,所有的單目運算符具有相同的優先級,因此在我認為的
真正的運算符中它們具有最高的優先級,又由于它們都是從右至左結合的,因此*p++與*(p++)等效是毫無疑問的。
接下來是算術運算符,*、/、%的優先級當然比+、-高了。
移位運算符緊隨其后。
其次的關系運算符中,< <= > >=要比 == !=高一個級別,不大好理解。
所有的邏輯操作符都具有不同的優先級(單目運算符出外,!和~)
邏輯位操作符的"與"比"或"高,而"異或"則在它們之間。
跟在其后的&&比||高。
接下來的是條件運算符,賦值運算符及逗號運算符。
在C語言中,只有4個運算符規定了運算方向,它們是&&、| |、條件運算符及賦值運算符。
&&、| |都是先計算左邊表達式的值,當左邊表達式的值能確定整個表達式的值時,就不再計算右邊表達式的值。如 a = 0
&& b; &&運算符的左邊位0,則右邊表達式b就不再判斷。
在條件運算符中。如a?b:c;先判斷a的值,再根據a的值對b或c之中的一個進行求值。
賦值表達式則規定先對右邊的表達式求值,因此使 a = b = c = 6;成為可能。
總結
以上是生活随笔為你收集整理的编程c语言顺口溜,C语言运算符优先级顺口溜[转]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python图像数独_Python图像识
- 下一篇: java core 生成路径_core文