C語言運算符的優先級和結合性

C語言運算符的優先級和結合性

運算符的優先級

當在一個表達式中使用多個運算符,有可能你所寫的表達式結果和你所期望的結果不一樣,那麼這個時候多半就是把運算符之間的優先級沒有搞清楚,在不清楚優先級的情況下,最簡單的做法就是在表達式之間加上圓括號。

邏輯與“&&” 邏輯或 “||” 邏輯非 “!”運算如下圖:

邏輯運算符的優先級:!> && > ||

<table><tbody>

a

b

!a

!b

a&&b

a||b

/<tbody>/<table>

邏輯表達式採用“短路求值”的方法

a||b 的值,只有a的值為假時才判斷b的值;如果a的值為真,b就不用判斷了。

int a = 1 , b = 0;

if( a || ++b)

printf("a = %d, b = %d\\n", a ,b);

結果:a = 1, b = 0;

a&&b 的值,只有當a的值為真才判斷b的值;如果a的值為假,就不用判斷b的值。

int a = 0, b = 1;

a && ++b;

printf("a = %d, b = %d\\n", a, b);

結果:a = 0, b = 1


分享到:


相關文章: