運算子有優先級別,例如加減乘除運算中,乘法和除法優先運算,然後,再到加減法。在寫**的時候,我們需要時刻提醒自己:我們寫的**不是給機器看的,是給人看的,我們需要和同事相互溝通,協同工作。所以,對於一些想優先執行的**,我們就用「小括號」包含起來,就會優先執行小括號中的**。
例如 c = a1 || a2 + b; 我們想先進行 a1 || a2 運算,用 a1 || a2表示式的結果再與b相加,最後的運算結果賦給c物件。但是,在c語言中,由於存在運算子優先順序的規則,算術運算子比關係運算子的優先順序高,所以,先執行a2+b運算,再把a2+b表示式的值與a1進行「邏輯或」運算。如下是測試的例子:
測試執行的結果如下:
可以看到,先進行a2 + b運算,該表示式的值是16,然後,16這個值與再與a1進行「邏輯或」運算,所以,結果是1。
我們想要先執行a1 || a2運算,那麼,就必須用小括號來包含起來,確保小括號中的**優先運算,所以,修改為:
int c = (a1 || a2) + b;
完整測試**如下:
測試執行的結果如下:
注意:我們不提倡在**中使用c語言預設的執行優先順序,如果我們想讓某一行**優先執行,就必須用小括號包含起來,讓小括號中的**優先執行。
運算子優先順序 C 運算子優先順序
c 運算子優先順序 優先順序運算子 描述方向1 scope resolution 範圍解析 left to right 2 suffix postfix increment and decrement 字首 字尾遞增和遞減 function call 函式呼叫 array subscripting ...
運算子優先順序 Python 運算子優先順序
python 運算子優先順序 運算子描述 lambda lambda表示式 or布林 或 and布林 與 not x 布林 非 in,not in 成員測試 is,is not 同一性測試 比較 按位或 按位異或 按位與 移位 加法與減法 乘法 除法與取餘 x,x 正負號 x 按位翻轉 指數 x.a...
運算子優先順序 PHP運算子優先順序
php運算子優先順序 結合方向 運算子附加資訊 非結合clone new clone 和 new左 array 非結合 遞增 遞減運算子 非結合 int float string array object bool 型別非結合 instanceof 型別右結合 邏輯操作符 左 算術運算子 左 算術運...