這篇文章主要介紹C++中運算符的應用示例,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)公司是工信部頒發(fā)資質IDC服務器商,為用戶提供優(yōu)質的成都移動機房服務表達式基礎概念一元運算符:作用于一個運算對象的運算符
二元運算符:作用于兩個運算對象的運算符
函數(shù)調用也是一種特殊的運算符,它對運算對象的數(shù)量沒有限制
左值:當對象被當做左值的時候,用的是對象的身份(在內存中的位置)。
右值:當一個對象被當做右值的時候,用的是對象的值(內容)。
在大多數(shù)情況下,不會明確指定求值順序。只有四種運算符明確規(guī)定可運算對象的求值順序:
1. 邏輯與運算符(&&):先求左側才求右側,只有當左側為真時才計算右側的值2. 邏輯或運算符(||)3. 條件運算符(?:)4. 逗號運算符(,)
bool b = true;bool b2 = -b; //b2是true。-1不等于0,所以b2的值為真
C++11規(guī)定,商一律向0取整(即直接切除小數(shù)部分)。
若m%n不等于0,則它的符號和m相同:
(-m)/n 和 m/(-n) 都等于 -(m/n) m%(-n) 等于 m%n(-m)%n 等于 -(m%n)
關系運算符作用于算術或指針類型,邏輯運算符作用于任意能轉換成布爾值的類型。
- 它們的返回值都是布爾類型。
短路求值(short-circuit evaluation)
關系運算符的求值結果是布爾值,連在一起用會產(chǎn)生意想不到的結果:
if(i < j < k) //若k大于1則為真
應改為:
if(i < j && j < k)賦值運算符
賦值運算符飛左側運算對象必須是一個可修改的左值。
如果賦值運算符的左右兩個運算對象類型不同,則右側運算對象將轉換成左側運算對象的類型。
int i, j; i = j = 0; //正確,都被賦值為0條件運算符 ?:
cond ? expr1 : expr2
滿足右結合律,運算對象一般按照從右向左的順序組合。
位運算符作用于整數(shù)類型的運算對象,以及一種名為bitset的標準庫類型的運算對象。
~ :位求反 << :左移 >> :右移 & :位與 ^ :位異或| :位或sizeof運算符
返回所占字節(jié)數(shù),所得值是一個size_t類型。
有如下兩種形式:sizeof(type)sizeof expr
滿足右結合律。
大多數(shù)情況下數(shù)組轉換成指針。
- 當數(shù)組被用作decltype關鍵字參數(shù),或者作為取址符(&)、sizeof及typeid等運算符的運算對象時,上述轉換不會發(fā)生。
命名的強制類型轉換
cast-name(expression)
cast-name有如下幾種:
dynamic_cast //運行時類型識別static_cast //只要不包含底層const,均可進行強制類型轉換,告訴編譯器不在乎精度損失const_cast //只能改變運算對象的底層const,稱為去掉cast性質(cast away the const)。將常量對象轉換為非常量對象。reinterpret_cast //
以上是“C++中運算符的應用示例”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!