1. 程式人生 > >(21)算術運算子、邏輯和關係運算符

(21)算術運算子、邏輯和關係運算符

算術運算子:

作用於算術型別或者指標型別。

一元運算子的優先順序最高,接下來是乘除,最低是加減。

除非另做特殊說明,算術運算子都能作用於任意算術型別以及任意能轉換為算術型別的型別。算術運算子的運算物件和求值結果都是右值。

一元運算子作用於指標或者算術值時,返回運算物件值的一個(提升後的)副本。

算術表示式有可能產生未定義的結果:

一.數學性質本身:除數不能0

二.計算機的特點:計算機結果超出該型別所能表示範圍時就會溢位

在除法運算中,如果兩個運算物件的符號相同則商為正,否則商為負。而且負值的商一律向0取整(即直接切除小數部分)。

邏輯和關係運算符:

邏輯運算子作用於任意能 轉換成布林值的型別。邏輯運算子和關係運算符的返回值都是布林型別。


邏輯與運算子(&&)和邏輯或運算子(||)都是短路求值。

短路求值:當且僅當左側運算物件無法確定表示式的結果時才會計算右側運算物件的值。

邏輯與運算子:當且僅當左側運算物件為真時才對右側物件求值

邏輯或運算子:當且僅當左側運算物件為假時才對右側物件求值

邏輯非運算子(!):將運算物件的值取反後返回。

關係運算符:

關係運算符比較運算物件的大小關係並返回布林值,關係運算都滿足左結合定律。

因為關係運算符的求值結果都是布林值,索引將幾個關係運算符連寫在一起會產生意想不到的結果:

if(i<j<k)    //將會拿i<j的布林值結果和K比較