C++ 基礎(chǔ)教程

C++ 流程控制

C++ 函數(shù)

C++ 數(shù)組 & 字符串

C++ 數(shù)據(jù)結(jié)構(gòu)

C++ 類 & 對(duì)象

C++ 指針

C++ 繼承

C++ STL 教程

C++ 參考手冊(cè)

C++ 運(yùn)算符

在本教程中,我們將借助示例學(xué)習(xí)C ++中不同類型的運(yùn)算符。 在編程中,運(yùn)算符是對(duì)值或變量進(jìn)行運(yùn)算的符號(hào)。

運(yùn)算符是對(duì)變量和值執(zhí)行運(yùn)算的符號(hào)。例如,+是用于加法的運(yùn)算符,而 - 是用于減法的運(yùn)算符。

C ++中的運(yùn)算符可以分為六種類型:

  1. 算術(shù)運(yùn)算符

  2. 賦值運(yùn)算符

  3. 關(guān)系運(yùn)算符

  4. 邏輯運(yùn)算符

  5. 按位運(yùn)算符

  6. 其他運(yùn)算符

1. C ++算術(shù)運(yùn)算符

算術(shù)運(yùn)算符用于對(duì)變量和數(shù)據(jù)執(zhí)行算術(shù)運(yùn)算。例如,

a + b;

在此,+運(yùn)算符用于將兩個(gè)變量a和b相加。同樣,C ++中還有其他各種算術(shù)運(yùn)算符。

假設(shè)變量 A 的值為 10,變量 B 的值為 20,則:

運(yùn)算符描述實(shí)例
+把兩個(gè)操作數(shù)相加A + B 將得到 30
-從第一個(gè)操作數(shù)中減去第二個(gè)操作數(shù)A - B 將得到 -10
*把兩個(gè)操作數(shù)相乘A * B 將得到 200
/分子除以分母B / A 將得到 2
%取模運(yùn)算符,整除后的余數(shù)B % A 將得到 0
++自增運(yùn)算符,整數(shù)值增加 1A++ 將得到 11
--自減運(yùn)算符,整數(shù)值減少 1A-- 將得到 9

示例1:算術(shù)運(yùn)算符

#include <iostream>
using namespace std;

int main() {
    int a, b;
    a = 7;
    b = 2;

    // 打印a和b的和
    cout << "a + b = " << (a + b) << endl;

    // 打印a和b的差
    cout << "a - b = " << (a - b) << endl;

    // 打印a和b的乘積
    cout << "a * b = " << (a * b) << endl;

    // 打印a除以b
    cout << "a / b = " << (a / b) << endl;

    // 打印a和b的模(余數(shù))
    cout << "a % b = " << (a % b) << endl;

    return 0;
}

輸出結(jié)果

a + b = 9
a - b = 5
a * b = 14
a / b = 3
a % b = 1

在這里,運(yùn)算符+、- 和 * 分別計(jì)算加法、減法和乘法,正如我們所期望的那樣。

/ 除法運(yùn)算符

注意我們程序中的操作(a / b)。  / 運(yùn)算符是除法運(yùn)算符。

從上面的示例可以看到,如果一個(gè)整數(shù)除以另一個(gè)整數(shù),我們將得到商。但是,如果除數(shù)或被除數(shù)是浮點(diǎn)數(shù),我們將以小數(shù)形式得到結(jié)果。

在C++中,

7/2 = 3
7.0 / 2 = 3.5
7 / 2.0 = 3.5
7.0 / 2.0 = 3.5

% 模運(yùn)算符

模運(yùn)算符 % 計(jì)算余數(shù)。當(dāng)a (9)除以b(4),余數(shù)為1

注意:%操作只能與整數(shù)使用。

自增和自減運(yùn)算符

C ++還分別提供了遞增和遞減運(yùn)算符:++和--。

++將操作數(shù)的值增加1

-- 將操作數(shù)的值減少1。

例如,

int num = 5;

// num增加1
++num;

這里,num的值從初始值5增加到6。

示例2:增量和減量運(yùn)算符

// 遞增和遞減運(yùn)算符的工作

#include <iostream>
using namespace std;

int main() {
    int a = 10, b = 100, result_a, result_b;

    // 將a加1并將結(jié)果存儲(chǔ)在result_a中
    result_a = ++a;
    cout << "result_a = " << result_a << endl;


    // 將b減1并將結(jié)果存儲(chǔ)在result_b中
    result_b = --b;
    cout << "result_b = " << result_b << endl;

    return 0;
}

輸出結(jié)果

result_a = 11
result_b = 99

在上面的程序中,我們使用++和-運(yùn)算符作為前綴。 我們還可以將這些運(yùn)算符用作后綴。

這些運(yùn)算符用作前綴與用作后綴時(shí)略有不同。

2. C ++ 賦值運(yùn)算符

在C ++中,賦值運(yùn)算符用于將值賦給變量。例如,

// 將5賦值給a
a = 5;

這里,我們給變量a賦了一個(gè)值5。

運(yùn)算符
實(shí)例等同
=a = b;a = b;
+=a += b;a = a + b;
-=a -= b;a = a - b;
*=a *= b;a = a * b;
/=a /= b;a = a / b;
%=a %= b;a = a % b;

示例2:賦值運(yùn)算符

#include <iostream>
using namespace std;

int main() {
    int a, b, temp;

    // a賦值2
    a = 2;

    //b賦值7
    b = 7;

   // 將a的值分配給temp
   temp = a;    // temp將為 2
   cout << "temp = " << temp << endl;

    // 把a(bǔ)和b的和賦值給a
    a += b;       // a = a +b
    cout << "a = " << a << endl;

    return 0;
}

輸出結(jié)果

temp = 2
a = 9

3. C ++關(guān)系運(yùn)算符

關(guān)系運(yùn)算符用于檢查兩個(gè)操作數(shù)之間的關(guān)系。例如,

// 檢查a是否大于b
a > b;

在這里,>是一個(gè)關(guān)系運(yùn)算符。它檢查是否a大于b。

如果該關(guān)系為true,則返回1;如果該關(guān)系為false,則返回0。

假設(shè)變量 A 的值為 5,變量 B 的值為 11,則:

運(yùn)算符描述實(shí)例
==檢查兩個(gè)操作數(shù)的值是否相等,如果相等則條件為真。(A == B) 不為真。
!=檢查兩個(gè)操作數(shù)的值是否相等,如果不相等則條件為真。(A != B) 為真。
>檢查左操作數(shù)的值是否大于右操作數(shù)的值,如果是則條件為真。(A > B) 不為真。
<檢查左操作數(shù)的值是否小于右操作數(shù)的值,如果是則條件為真。(A < B) 為真。
>=檢查左操作數(shù)的值是否大于或等于右操作數(shù)的值,如果是則條件為真。(A >= B) 不為真。
<=檢查左操作數(shù)的值是否小于或等于右操作數(shù)的值,如果是則條件為真。(A <= B) 為真。

示例4:關(guān)系運(yùn)算符

#include <iostream>
using namespace std;

int main() {
    int a, b;
    a = 3;
    b = 5;
    bool result;

    result = (a == b);   // false
    cout << "3 == 5 計(jì)算結(jié)果為 " << result << endl;

    result = (a != b);  // true
    cout << "3 != 5 計(jì)算結(jié)果為 " << result << endl;

    result = a > b;   // false
    cout << "3 > 5 計(jì)算結(jié)果為 " << result << endl;

    result = a < b;   // true
    cout << "3 < 5 計(jì)算結(jié)果為 " << result << endl;

    result = a >= b;  // false
    cout << "3 >= 5 計(jì)算結(jié)果為 " << result << endl;

    result = a <= b;  // true
    cout << "3 <= 5 計(jì)算結(jié)果為 " << result << endl;

    return 0;
}

輸出結(jié)果

3 == 5 計(jì)算結(jié)果為 0
3 != 5 計(jì)算結(jié)果為 1
3 > 5 計(jì)算結(jié)果為 0
3 < 5 計(jì)算結(jié)果為 1
3 >= 5 計(jì)算結(jié)果為 0
3 <= 5 計(jì)算結(jié)果為 1

注意:關(guān)系運(yùn)算符用于決策和循環(huán)。

4. C ++邏輯運(yùn)算符

邏輯運(yùn)算符用于檢查表達(dá)式是true還是false。如果表達(dá)式為true,則返回1;如果表達(dá)式為false,則返回0

p>假設(shè)變量 A 的值為 1,變量 B 的值為 0,則:

運(yùn)算符描述實(shí)例
&&稱為邏輯與運(yùn)算符。如果兩個(gè)操作數(shù)都非零,則條件為真。(A && B) 為假。
||稱為邏輯或運(yùn)算符。如果兩個(gè)操作數(shù)中有任意一個(gè)非零,則條件為真。(A || B) 為真。
!稱為邏輯非運(yùn)算符。用來(lái)逆轉(zhuǎn)操作數(shù)的邏輯狀態(tài)。如果條件為真則邏輯非運(yùn)算符將使其為假。!(A && B) 為真。

在C ++中,邏輯運(yùn)算符通常用于決策制定。為了進(jìn)一步了解邏輯運(yùn)算符,讓我們看下面的示例,

假設(shè),
a = 5
b = 8

假如,

(a > 3) && (b > 5) 計(jì)算結(jié)果為 true
(a > 3)  && (b < 5) 計(jì)算結(jié)果為 false

(a > 3) || (b > 5) 計(jì)算結(jié)果為 true
(a > 3) || (b < 5) 計(jì)算結(jié)果為 true
(a < 3) || (b < 5) 計(jì)算結(jié)果為 false

!(a == 3) 計(jì)算結(jié)果為 true
!(a > 3) 計(jì)算結(jié)果為 false

示例5:邏輯運(yùn)算符

#include <iostream>
using namespace std;

int main() {
    bool result;

    result = (3 != 5) && (3 < 5);     // true
    cout << "(3 != 5) && (3 < 5) 計(jì)算結(jié)果為 " << result << endl;

    result = (3 == 5) && (3 < 5);    // false
    cout << "(3 == 5) && (3 < 5) 計(jì)算結(jié)果為 " << result << endl;

    result = (3 == 5) && (3 > 5);    // false
    cout << "(3 == 5) && (3 > 5) 計(jì)算結(jié)果為 " << result << endl;

    result = (3 != 5) || (3 < 5);    // true
    cout << "(3 != 5) || (3 < 5) 計(jì)算結(jié)果為 " << result << endl;

    result = (3 != 5) || (3 > 5);    // true
    cout << "(3 != 5) || (3 > 5) 計(jì)算結(jié)果為 " << result << endl;

    result = (3 == 5) || (3 > 5);    // false
    cout << "(3 == 5) || (3 > 5) 計(jì)算結(jié)果為 " << result << endl;

    result = !(5 == 2);    // true
    cout << "!(5 == 2) 計(jì)算結(jié)果為 " << result << endl;

    result = !(5 == 5);    // false
    cout << "!(5 == 5) 計(jì)算結(jié)果為 " << result << endl;

    return 0;
}

輸出結(jié)果

(3 != 5) && (3 < 5) 計(jì)算結(jié)果為 1
(3 == 5) && (3 < 5) 計(jì)算結(jié)果為 0
(3 == 5) && (3 > 5) 計(jì)算結(jié)果為 0
(3 != 5) || (3 < 5) 計(jì)算結(jié)果為 1
(3 != 5) || (3 > 5) 計(jì)算結(jié)果為 1
(3 == 5) || (3 < 5) 計(jì)算結(jié)果為 0
!(5 == 2) 計(jì)算結(jié)果為 1
!(5 == 5) 計(jì)算結(jié)果為 0

邏輯運(yùn)算符程序的用法

  • (3!= 5)&&(3 <5)求值為1,因?yàn)閮蓚€(gè)操作數(shù)(3!= 5)和(3 <5)均為1(true)。

  • (3 == 5)&&(3 <5)求值為0,因?yàn)椴僮鲾?shù)(3 == 5)為0(false)。

  • (3 == 5)&&(3> 5)求值為0,因?yàn)閮蓚€(gè)操作數(shù)(3 == 5)和(3> 5)均為0(false)。

  • (3!= 5)||(3 <5)求值為1,因?yàn)閮蓚€(gè)操作數(shù)(3!= 5)和(3 <5)均為1(true)。

  • (3!= 5)||(3> 5)求值為1,因?yàn)椴僮鲾?shù)(3!= 5)為1(true)。

  • (3 == 5)||(3> 5)求值為0,因?yàn)閮蓚€(gè)操作數(shù)(3 == 5)和(3> 5)均為0(false)。

  • !(5 == 2)求值為1,因?yàn)椴僮鲾?shù)(5 == 2)為0(false)。

  • !(5 == 5)求值為0,因?yàn)椴僮鲾?shù)(5 == 5)為1(true)。

5. C ++按位運(yùn)算符

在C ++中,按位運(yùn)算符用于對(duì)單個(gè)位執(zhí)行操作。 它們只能與char和int數(shù)據(jù)類型一起使用。

下表顯示了 C++ 支持的位運(yùn)算符。假設(shè)變量 A 的值為 60,變量 B 的值為 13,則:

運(yùn)算符描述實(shí)例
&如果同時(shí)存在于兩個(gè)操作數(shù)中,二進(jìn)制 AND 運(yùn)算符復(fù)制一位到結(jié)果中。(A & B) 將得到 12,即為 0000 1100
|如果存在于任一操作數(shù)中,二進(jìn)制 OR 運(yùn)算符復(fù)制一位到結(jié)果中。(A | B) 將得到 61,即為 0011 1101
^如果存在于其中一個(gè)操作數(shù)中但不同時(shí)存在于兩個(gè)操作數(shù)中,二進(jìn)制異或運(yùn)算符復(fù)制一位到結(jié)果中。(A ^ B) 將得到 49,即為 0011 0001
~二進(jìn)制補(bǔ)碼運(yùn)算符是一元運(yùn)算符,具有"翻轉(zhuǎn)"位效果,即0變成1,1變成0。(~A ) 將得到 -61,即為 1100 0011,一個(gè)有符號(hào)二進(jìn)制數(shù)的補(bǔ)碼形式。
<<二進(jìn)制左移運(yùn)算符。左操作數(shù)的值向左移動(dòng)右操作數(shù)指定的位數(shù)。A << 2 將得到 240,即為 1111 0000
>>二進(jìn)制右移運(yùn)算符。左操作數(shù)的值向右移動(dòng)右操作數(shù)指定的位數(shù)。A >> 2 將得到 15,即為 0000 1111

要了解更多信息,請(qǐng)?jiān)L問(wèn)C ++按位運(yùn)算符

除了上面討論的運(yùn)算符,也有一些其他運(yùn)算符,如sizeof,?,.,&等,它們不能被整齊地劃分為一個(gè)或另一個(gè)類型。我們將在以后的教程中學(xué)習(xí)更多關(guān)于這些操作符的內(nèi)容。

雜項(xiàng)運(yùn)算符

下表列出了 C++ 支持的其他一些重要的運(yùn)算符。

運(yùn)算符描述
sizeofsizeof 運(yùn)算符返回變量的大小。例如,sizeof(a) 將返回 4,其中 a 是整數(shù)。
Condition ? X : Y條件運(yùn)算符。如果 Condition 為真 ? 則值為 X : 否則值為 Y。
,逗號(hào)運(yùn)算符會(huì)順序執(zhí)行一系列運(yùn)算。整個(gè)逗號(hào)表達(dá)式的值是以逗號(hào)分隔的列表中的最后一個(gè)表達(dá)式的值。
.(點(diǎn))和  ->(箭頭)成員運(yùn)算符用于引用類、結(jié)構(gòu)和共用體的成員。
Cast強(qiáng)制轉(zhuǎn)換運(yùn)算符把一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型。例如,int(2.2000) 將返回 2。
&指針運(yùn)算符 & 返回變量的地址。例如 &a; 將給出變量的實(shí)際地址。
*指針運(yùn)算符 * 指向一個(gè)變量。例如,*var; 將指向變量 var。

C++ 中的運(yùn)算符優(yōu)先級(jí)

運(yùn)算符的優(yōu)先級(jí)確定表達(dá)式中項(xiàng)的組合。這會(huì)影響到一個(gè)表達(dá)式如何計(jì)算。某些運(yùn)算符比其他運(yùn)算符有更高的優(yōu)先級(jí),例如,乘除運(yùn)算符具有比加減運(yùn)算符更高的優(yōu)先級(jí)。

例如 x = 7 + 3 * 2,在這里,x 被賦值為 13,而不是 20,因?yàn)檫\(yùn)算符 * 具有比 + 更高的優(yōu)先級(jí),所以首先計(jì)算乘法 3*2,然后再加上 7。

下表將按運(yùn)算符優(yōu)先級(jí)從高到低列出各個(gè)運(yùn)算符,具有較高優(yōu)先級(jí)的運(yùn)算符出現(xiàn)在表格的上面,具有較低優(yōu)先級(jí)的運(yùn)算符出現(xiàn)在表格的下面。在表達(dá)式中,較高優(yōu)先級(jí)的運(yùn)算符會(huì)優(yōu)先被計(jì)算。

類別 運(yùn)算符 結(jié)合性 
后綴 () [] -> .  ++   - -  從左到右 
一元 +  -   !  ~  ++  - -   (type)*  &  sizeof 從右到左 
乘除 *  /  % 從左到右 
加減 +  - 從左到右 
移位 << >> 從左到右 
關(guān)系 < <=  > >= 從左到右 
相等 ==  != 從左到右 
位與 AND 從左到右 
位異或 XOR 從左到右 
位或 OR 從左到右 
邏輯與 AND && 從左到右 
邏輯或 OR || 從左到右 
條件 ?: 從右到左 
賦值 =  +=  -=  *=  /=  %=>>=  <<=  &=  ^=   |= 從右到左 
逗號(hào) 從左到右 

示例:運(yùn)算符優(yōu)先級(jí)

#include <iostream>
using namespace std;

int main() {

  // 先求出17 * 6
  int num1 = 5 - 17 * 6;

  // 與num1等效的表達(dá)式
  int num2 = 5 - (17 * 6);

  // 強(qiáng)制編譯器先求5 - 17的值
  int num3 = (5 - 17) * 6;

  cout << "num1 = " << num1 << endl;
  cout << "num2 = " << num2 << endl;
  cout << "num3 = " << num3 << endl;

  return 0;
}

輸出結(jié)果:

num1 = -97
num2 = -97
num3 = -72

注意:由于C ++中有很多運(yùn)算符具有多個(gè)優(yōu)先級(jí),因此強(qiáng)烈建議我們使用括號(hào)使代碼更具可讀性。

相關(guān)推薦:C++ 運(yùn)算符優(yōu)先級(jí)和關(guān)聯(lián)性

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清