您好,登錄后才能下訂單哦!
這篇文章主要介紹C++中運算符的應用示例,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
一元運算符:作用于一個運算對象的運算符
二元運算符:作用于兩個運算對象的運算符
函數調用也是一種特殊的運算符,它對運算對象的數量沒有限制
左值:當對象被當做左值的時候,用的是對象的身份(在內存中的位置)。
右值:當一個對象被當做右值的時候,用的是對象的值(內容)。
在大多數情況下,不會明確指定求值順序。只有四種運算符明確規定可運算對象的求值順序:
1. 邏輯與運算符(&&):先求左側才求右側,只有當左側為真時才計算右側的值2. 邏輯或運算符(||)3. 條件運算符(?:)4. 逗號運算符(,)
bool b = true;bool b2 = -b; //b2是true。-1不等于0,所以b2的值為真
C++11規定,商一律向0取整(即直接切除小數部分)。
若m%n不等于0,則它的符號和m相同:
(-m)/n 和 m/(-n) 都等于 -(m/n) m%(-n) 等于 m%n(-m)%n 等于 -(m%n)
關系運算符作用于算術或指針類型,邏輯運算符作用于任意能轉換成布爾值的類型。
- 它們的返回值都是布爾類型。
短路求值(short-circuit evaluation)
關系運算符的求值結果是布爾值,連在一起用會產生意想不到的結果:
if(i < j < k) //若k大于1則為真
應改為:
if(i < j && j < k)
賦值運算符飛左側運算對象必須是一個可修改的左值。
如果賦值運算符的左右兩個運算對象類型不同,則右側運算對象將轉換成左側運算對象的類型。
int i, j; i = j = 0; //正確,都被賦值為0
cond ? expr1 : expr2
滿足右結合律,運算對象一般按照從右向左的順序組合。
作用于整數類型的運算對象,以及一種名為bitset的標準庫類型的運算對象。
~ :位求反 << :左移 >> :右移 & :位與 ^ :位異或| :位或
返回所占字節數,所得值是一個size_t類型。
有如下兩種形式:sizeof(type)sizeof expr
滿足右結合律。
大多數情況下數組轉換成指針。
- 當數組被用作decltype關鍵字參數,或者作為取址符(&)、sizeof及typeid等運算符的運算對象時,上述轉換不會發生。
命名的強制類型轉換
cast-name<type>(expression)
cast-name有如下幾種:
dynamic_cast //運行時類型識別static_cast //只要不包含底層const,均可進行強制類型轉換,告訴編譯器不在乎精度損失const_cast //只能改變運算對象的底層const,稱為去掉cast性質(cast away the const)。將常量對象轉換為非常量對象。reinterpret_cast //
以上是“C++中運算符的應用示例”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。