<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # C++ 中的運算符 > 原文: [https://beginnersbook.com/2017/08/cpp-operators/](https://beginnersbook.com/2017/08/cpp-operators/) 運算符代表一個行為。例如,`+`是表示加法的運算符。運算符處理兩個或多個操作數并生成輸出。例如`3 + 4 + 5`,這里`+`運算符在三個操作數上工作并產生 12 作為輸出。 ## C++ 中的運算符類型 ![C++ Operator Types](https://img.kancloud.cn/72/e5/72e5b94b9ce88a6dc15e31816ef920ac_650x250.jpg) 1)基本算術運算符 2)賦值運算符 3)自增和自減運算符 4)邏輯運算符 5)比較(關系)運算符 6)位運算符 7)三元運算符 ## 1)基本算術運算符 基本算術運算符為:`+ - * / %` + **`+`** 用于加法。 + **`-`** 用于減法。 + **`*`** 用于乘法。 + **`/`** 用于除法。 + **`%`**用于模數。 **注**:模運算符返回余數,例如`20%5`將返回 0。 ### 算術運算符的例子 ```cpp #include <iostream> using namespace std; int main(){ int num1 = 240; ?int num2 = 40; cout<<"num1 + num2: "<<(num1 + num2)<<endl; cout<<"num1 - num2: "<<(num1 - num2)<<endl; ?cout<<"num1 * num2: "<<(num1 * num2)<<endl; ?cout<<"num1 / num2: "<<(num1 / num2)<<endl; cout<<"num1 % num2: "<<(num1 % num2)<<endl; return 0; } ``` **輸出:** ```cpp num1 + num2: 280 num1 - num2: 200 num1 * num2: 9600 num1 / num2: 6 num1 % num2: 0 ``` ## 2)賦值運算符 C++ 中的賦值運算符是:`= += -= *= /= %=` + **`num2 = num1`** 將變量`num1`的值賦給變量`num2`。 + **`num2 += num1`** 等于`num2 = num2 + num1` + **`num2 -= num1`** 等于`num2 = num2 - num1` + **`num2 *= num1`** 等于`num2 = num2 * num1` + **`num2 /= num1`** 等于`num2 = num2 / num1` + **`num2 %= num1`** 等于`num2 = num2 % num1` ### 賦值運算符的示例 ```cpp #include <iostream> using namespace std; int main(){ int num1 = 240; int num2 = 40; num2 = num1; cout<<"= 輸出: "<<num2<<endl; num2 += num1; cout<<"+= 輸出: "<<num2<<endl; num2 -= num1; ?cout<<"-= 輸出: "<<num2<<endl; num2 *= num1; ? ? ? cout<<"*= 輸出: "<<num2<<endl; num2 /= num1; ? ? ? cout<<"/= 輸出: "<<num2<<endl; num2 %= num1; ? ? ? cout<<"%= 輸出: "<<num2<<endl; return 0; } ``` **輸出:** ```cpp = 輸出: 240 += 輸出: 480 -= 輸出: 240 *= 輸出: 57600 /= 輸出: 240 %= 輸出: 0 ``` ## 3)自增和自減運算符 `++`和`--`: + `num++`相當于`num = num + 1;` + `num--`相當于`num = num - 1;` ### 自增和自減運算符的示例 ```cpp #include <iostream> using namespace std; int main(){ int num1 = 240; int num2 = 40; num1++; num2--; cout<<"num1++ is: "<<num1<<endl; cout<<"num2-- is: "<<num2; return 0; } ``` **輸出:** ```cpp num1++ is: 241 num2-- is: 39 ``` ## 4)邏輯運算符 邏輯運算符與二進制變量一起使用。它們主要用于條件語句和循環以評估條件。 C++中的邏輯運算符是:`&& || !` 假設我們有兩個布爾變量`b1`和`b2`。 如果`b1`和`b2`都為真,則`b1 && b2`將返回`true`,否則它將返回`false`。 如果`b1`和`b2`都為假,則`b1 || b2`將返回`false`,否則返回`true`。 `!b1`將返回與`b1`相反的東西,這意味著如果`b1`為假則為真,如果`b1`為真則返回`false`。 ### 邏輯運算符的示例 ```cpp #include <iostream> using namespace std; int main(){ bool b1 = true; ? ?bool b2 = false; cout<<"b1 && b2: "<<(b1&&b2)<<endl; ??cout<<"b1 || b2: "<<(b1||b2)<<endl; ? ?cout<<"!(b1 && b2): "<<!(b1&&b2); return 0; } ``` **輸出:** ```cpp b1 && b2: 0 b1 || b2: 1 !(b1 && b2): 1 ``` ## 5)關系運算符 我們在 C++中有六個關系運算符:`== != > < >= <=` + 如果左側和右側都相等,則`==`返回`true` + 如果左側不等于右側,則`!=`返回 true。 + 如果左側大于右側,`>`返回`true`。 + 如果左側小于右側,`<`返回`true`。 + 如果左側大于或等于右側,則`>=`返回`true`。 + 如果左側小于或等于右側,則`<=`返回`true`。 ### 關系運算符的示例 ```cpp #include <iostream> using namespace std; int main(){ int num1 = 240; int num2 =40; if (num1==num2) { cout<<"num1 and num2 are equal"<<endl; ? ?} ? else{ cout<<"num1 and num2 are not equal"<<endl; ??} if( num1 != num2 ){ ? ? ?cout<<"num1 and num2 are not equal"<<endl; ?} ?else{ ? ? ?cout<<"num1 and num2 are equal"<<endl; ? } if( num1 > num2 ){ ? ? ?cout<<"num1 is greater than num2"<<endl; ? } ? else{ ? ? ?cout<<"num1 is not greater than num2"<<endl; ? } if( num1 >= num2 ){ ? ? ? cout<<"num1 is greater than or equal to num2"<<endl; ? } ? else{ ? ? ?cout<<"num1 is less than num2"<<endl; ? } if( num1 < num2 ){ cout<<"num1 is less than num2"<<endl; ? } ? else{ cout<<"num1 is not less than num2"<<endl; ? } if( num1 <= num2){ cout<<"num1 is less than or equal to num2"<<endl; ? } ? else{ cout<<"num1 is greater than num2"<<endl; ? } return 0; } ``` **輸出:** ```cpp num1 and num2 are not equal num1 and num2 are not equal num1 is greater than num2 num1 is greater than or equal to num2 num1 is not less than num2 num1 is greater than num2 ``` ## 6)按位運算符 有六個按位運算符:`& | ^ ~ << >>` ```cpp num1 = 11; /* equal to 00001011*/ num2 = 22; /* equal to 00010110 */ ``` 按位運算符執行逐位處理。 `num1 & num2`比較`num1`和`num2`的相應位,如果兩個位相等則生成 1,否則返回 0。在我們的例子中它將返回:2,這是`00000010`,因為在`num1`和`num2`的二進制形式中,只有倒數第二位匹配。 `num1 | num2`比較`num1`和`num2`的相應位,如果任一位為 1,則生成 1,否則返回 0。在我們的例子中,它將返回 31,即`00011111`。 `num1 ^ num2`比較`num1`和`num2`的相應位,如果它們不相等則生成 1,否則返回 0。在我們的例子中它將返回 29,相當于`00011101`。 **`~num1`** 是一個補碼運算符,只是將位從 0 更改為 1,1 更改為 0。在我們的示例中,它將返回 -12,相當于`11110100`。 `num1 << 2`是左移位運算符,它將位移到左邊,丟棄最左邊的位,并將最右邊的位賦值為 0。在我們的例子中,輸出為 44,相當于`00101100`。 注意:在下面的示例中,我們在此移位運算符的右側提供 2,這是位向左移動兩個位置的原因。我們可以更改此數字,并且位將按照移位運算符右側指定的位數移動。同樣適用于右移位運算符。 `num1 >> 2`是右移位運算符,它將位向右移動,丟棄最右位,并將最左邊的位指定為 0。在我們的例子中,輸出為 2,相當于`00000010` ### 按位運算符的示例 ```cpp #include <iostream> using namespace std; int main(){ int num1 = 11; ?/* 11 = 00001011 */ ? int num2 = 22; ?/* 22 = 00010110 */ ? int result = 0; result = num1 & num2; ? cout<<"num1 & num2: "<<result<<endl; result = num1 | num2; ?cout<<"num1 | num2: "<<result<<endl; result = num1 ^ num2; ? cout<<"num1 ^ num2: "<<result<<endl; result = ~num1; ?cout<<"~num1: "<<result<<endl; result = num1 << 2; ?cout<<"num1 << 2: "<<result<<endl; result = num1 >> 2; ? cout<<"num1 >> 2: "<<result; return 0; } ``` **輸出:** ```cpp num1 & num2: 2 num1 | num2: 31 num1 ^ num2: 29 ~num1: -12 num1 << 2: 44 num1 >> 2: 2 ``` ## 7)三元運算符 此運算符計算布爾表達式并根據結果賦值。 語法: ```cpp variable num1 = (expression) ? value if true : value if false ``` 如果表達式結果為`true`,則將冒號(`:`)之前的第一個值賦給變量`num1`,否則將第二個值賦給`num1`。 ### 三元運算符的例子 ```cpp #include <iostream> using namespace std; int main(){ int num1, num2; num1 = 99; /* num1 is not equal to 10 that's why * the second value after colon is assigned * to the variable num2 */ num2 = (num1 == 10) ? 100: 200; cout<<"num2: "<<num2<<endl; /* num1 is equal to 99 that's why * the first value is assigned * to the variable num2 */ num2 = (num1 == 99) ? 100: 200; cout<<"num2: "<<num2; return 0; } ``` **輸出:** ```cpp num2: 200 num2: 100 ``` ## 雜項運算符 C++ 中很少有其他運算符,如**逗號運算符**和 **`sizeof`運算符**。我們將在單獨的教程中詳細介紹它們。 ## C++ 中的運算符優先級 如果表達式具有多個運算符,則確定首先需要對哪個運算符求值。頂部的運算符具有較高優先級,底部具有較低優先級。 + **一元運算符** `++ -- ! ~` + **乘法** `* / %` + **加法** `+ -` + **移位** `<< >>` + **關系** `< <= > >=` + **相等** `== !=` + **位與** `&` + **位異或** `^` + **位或** `|` + **邏輯與** `&&` + **邏輯或** `||` + **三元** `?:` + **賦值** `= += -= *= /= %= >>= <<= &= ^= |=`
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看