一文總結C++運算符的使用方法
1. 算術運算符
算術運算符用于執(zhí)行基本數(shù)學運算,例如加減乘除和取模等操作。下表列出了C++中支持的算術運算符:
運算符 | 描述 | 示例 |
---|---|---|
+ | 加法 | a+ ++b |
− | 減法 | a-b |
∗ | 乘法 | a∗ *∗b |
/ | 除法 | a/ //b |
取模 | ab |
其中,a和b代表要進行計算的兩個變量或值。
(1)加法運算符
加法運算符(+)用于將兩個值相加。如果兩個操作數(shù)都是數(shù)字,則它們將被相加。如果其中一個操作數(shù)是字符串,則它們將被連接起來。
e.g.
int a = 5; int b = 3; int c = a + b; // c的值為8
std::string str1 = "Hello, "; std::string str2 = "world!"; std::string str3 = str1 + str2; // str3的值為"Hello, world!"
(2)減法運算符
減法運算符(-)用于將第一個操作數(shù)減去第二個操作數(shù)。
e.g.
int a = 5; int b = 3; int c = a - b; // c的值為2
(3)乘法運算符
乘法運算符(*)用于將兩個數(shù)相乘。
e.g.
int a = 5; int b = 3; int c = a * b; // c的值為15
注意,C++中整數(shù)除法返回整數(shù)結果,即舍去小數(shù)部分。
(5)取模運算符
取模運算符(%)返回除法的余數(shù)。
e.g.
int a = 7; int b = 3; int c = a % b; // c的值為1
2. 關系運算符
關系運算符用于比較兩個值并返回布爾值(true或false)。下表列出了C++中支持的關系運算符:
運算符 | 描述 | 示例 |
---|---|---|
== | 相等 | a == b |
!= | 不相等 | a != b |
> | 大于 | a > b |
>= | 大于等于 | a >= b |
<= | 小于等于 | a <= b |
其中,a和b代表要進行比較的兩個變量或值。
(1)相等和不相等運算符
相等運算符(==)用于比較兩個值是否相等。如果它們相等,則返回true,否則返回false。
e.g.
int a = 5; int b = 3; bool c = (a == b); // c的值為false
不相等運算符(!=)用于比較兩個值是否不相等。如果它們不相等,則返回true,否則返回false。
e.g.
int a = 5; int b = 3; bool c = (a != b); // c的值為true
(2)大于和小于運算符
大于運算符(>)用于比較第一個操作數(shù)是否大于第二個操作數(shù)。如果是,則返回true,否則返回false。
e.g.
int a = 5; int b = 3; bool c = (a > b); // c的值為true
小于運算符(<)用于比較第一個操作數(shù)是否小于第二個操作數(shù)。如果是,則返回true,否則返回false。
e.g
int a = 5; int b = 3; bool c = (a < b); // c的值為false
(3)大于等于和小于等于運算符
大于等于運算符(>=)用于比較第一個操作數(shù)是否大于或等于第二個操作數(shù)。如果是,則返回true,否則返回false。
e.g.
int a = 5; int b = 3; bool c = (a >= b); // c的值為true
小于等于運算符(<=)用于比較第一個操作數(shù)是否小于或等于第二個操作數(shù)。如果是,則返回true,否則返回false。
e.g.
int a = 5; int b = 3; bool c = (a <= b); // c的值為false
3. 邏輯運算符
邏輯運算符用于執(zhí)行布爾邏輯操作。下表列出了C++中支持的邏輯運算符:
運算符 | 描述 | 示例 |
---|---|---|
&& | 邏輯與 | a && b |
|| | 邏輯或 | a |
! | 邏輯非 | !a |
其中,a和b代表要進行邏輯運算的兩個布爾值。
(1)邏輯與運算符
邏輯與運算符(&&)用于檢查兩個條件是否都為真。只有當兩個條件都為真時,才會返回true,否則返回false。
e.g.
bool a = true; bool b = false; bool c = (a && b); // c的值為false
(3)邏輯非運算符
邏輯非運算符(!)用于翻轉一個布爾值。如果輸入為true,則返回false,否則返回true。
e.g.
bool a = true; bool b = !a; // b的值為false
4. 按位運算符
按位運算符用于操作二進制數(shù)據(jù)。下表列出了C++中支持的按位運算符:
運算符 | 描述 | 示例 |
---|---|---|
& | 按位與 | a & b |
| | 按位或 | a |
^ | 按位異或 | a ^ b |
~ | 取反 | ~a |
<< | 左移 | a << b |
>> | 右移 | a >> b |
其中,a和b代表要進行按位運算的兩個整數(shù)。
(1)按位與運算符
按位與運算符(&)將兩個二進制數(shù)的每一位進行比較,并且如果兩位都為1,則該位輸出1,否則輸出0。
e.g.
int a = 5; // 二進制表示為101 int b = 3; // 二進制表示為011 int c = a & b; // c的值為1,二進制表示為001
(2)按位或運算符
按位或運算符(|)將兩個二進制數(shù)的每一位進行比較,并且如果任意一位為1,則該位輸出1,否則輸出0。
e.g.
int a = 5; // 二進制表示為101 int b = 3; // 二進制表示為011 int c = a \| b; // c的值為7,二進制表示為111
(3)按位異或運算符
按位異或運算符將兩個整數(shù)的二進制表示進行“異或”操作,并返回一個新的整數(shù)。當兩個比特位相同時,該比特位結果為 0,否則為 1。
e.g.
int a = 5; // 二進制 101 int b = 3; // 二進制 011 int c = a ^ b; // 二進制 110 (即十進制 6)
(4)按位取反運算符
按位取反運算符對整數(shù)的二進制表示進行取反操作,并返回一個新的整數(shù)。當一個比特位為 0 時,結果為 1,否則為 0。
e.g
int a = 5; // 二進制 101 int b = ~a; // 二進制 010 (即十進制 2)
(5)左移位運算符
左移位運算符將一個整數(shù)的二進制表示向左移動指定的位數(shù),并返回一個新的整數(shù)。左移 n 位相當于將這個數(shù)乘以 2 的 n 次方。
e.g.
int a = 5; // 二進制 101 int b = a << 1; // 二進制 1010 (即十進制 10)
(6)右移位運算符
右移位運算符將一個整數(shù)的二進制表示向右移動指定的位數(shù),并返回一個新的整數(shù)。右移 n 位相當于將這個數(shù)除以 2 的 n 次方。
e.g.
int a = 5; // 二進制 101 int b = a >> 1; // 二進制 10 (即十進制 2)
5. 取地址運算符
C++中,取地址運算符用于獲取變量或對象的內存地址,表示為&
,并且可以應用于任何變量、指針或對象。使用取地址運算符可以在程序中有效地管理內存和數(shù)據(jù)結構。
取地址運算符的一般語法如下:
&variable // 獲取變量的地址 &object // 獲取對象的地址 &type // 獲取類型的地址
其中,“variable”表示要獲取地址的變量,“object”表示要獲取地址的對象,“type”表示要獲取地址的類型。
e.g.
int a = 10; int* ptr = &a; // 使用取地址運算符獲取變量a的地址,并將其存儲在指針ptr中 cout << "The value of a is: " << a << endl; cout << "The address of a is: " << &a << endl; cout << "The value of ptr is: " << ptr << endl; cout << "The value pointed to by ptr is: " << *ptr << endl;
上述代碼首先定義一個整數(shù)變量“a”,然后使用取地址運算符&
獲取它的地址,并將其存儲在指針“ptr”中。接下來打印出變量“a”的值和地址、指針“ptr”的值以及指針所指向的值。
輸出結果應該與以下內容類似:
The value of a is: 10
The address of a is: 0x7fff5fbff7dc
The value of ptr is: 0x7fff5fbff7dc
The value pointed to by ptr is: 10
從輸出結果可以看出,變量“a”的地址與指針“ptr”的值相同,并且指針所指向的值與變量“a”的值相同。
6. 取內容運算符
在C++中,取內容運算符用于獲取指針所指向的值,表示為*
,并且可以應用于任何指針變量。
取內容運算符的一般語法如下:
*pointer // 獲取指針所指向的值
其中,“pointer”表示要獲取值的指針變量。
e.g.
int a = 10; int* ptr = &a; // 使用取地址運算符獲取變量a的地址,并將其存儲在指針ptr中 cout << "The value of a is: " << a << endl; cout << "The value pointed to by ptr is: " << *ptr << endl;
上述代碼首先定義一個整數(shù)變量“a”,然后使用取地址運算符&
獲取它的地址,并將其存儲在指針“ptr”中。接下來打印出變量“a”的值和指針“ptr”所指向的值。
輸出:
The value of a is: 10
The value pointed to by ptr is: 10
從輸出結果可以看出,指針“ptr”所指向的值與變量“a”的值相同。
7. 成員選擇符
在C++中,成員選擇符用于訪問類的成員變量和成員函數(shù)。它表示為.
(點號),并且可以應用于任何已定義的對象。使用成員選擇符可以操作和修改對象的成員,從而實現(xiàn)面向對象編程。
成員選擇符的一般語法如下:
object.member // 訪問成員變量或成員函數(shù)
其中,“object”表示要訪問成員的對象,“member”表示要訪問的成員變量或成員函數(shù)。
e.g.
class MyClass { public: int myVar; void myFunc() { cout << "Hello, world!" << endl; } }; MyClass obj; // 創(chuàng)建MyClass對象 obj.myVar = 42; // 使用成員選擇符訪問myVar成員變量 cout << "The value of myVar is: " << obj.myVar << endl; obj.myFunc(); // 使用成員選擇符調用myFunc成員函數(shù)
上述代碼首先定義了一個名為“MyClass”的類,該類包含一個整數(shù)類型的成員變量“myVar”和一個無參數(shù)無返回值的成員函數(shù)“myFunc”。接下來創(chuàng)建了一個名為“obj”的MyClass對象,并使用成員選擇符訪問其成員變量和成員函數(shù)。
輸出:
The value of myVar is: 42
Hello, world!
從輸出結果可以看出,我們成功地使用成員選擇符訪問了MyClass對象的成員變量和成員函數(shù)。
成員選擇符 ->
用于訪問結構體和類指針所指向的成員。它通常與動態(tài)內存分配函數(shù) new 結合使用,來創(chuàng)建對象并進行操作。
e.g.
struct Person { std::string name; int age; }; int main() { // 創(chuàng)建Person結構體指針p Person *p = new Person(); // 通過成員選擇符->訪問p所指向的name成員變量 p->name = "John"; // 通過成員選擇符->訪問p所指向的age成員變量 p->age = 30; delete p; return 0; }
上述代碼在動態(tài)內存中分配了一個新的Person結構體,并將其作為指針p進行訪問。然后使用成員選擇符 ->
訪問指針p所指向的name和age成員。
需要注意的是,當使用普通對象(即不是指針)時,必須使用句點 .
而不是 ->
來訪問成員。
8. 作用域運算符
C++的作用域運算符 ::
用于訪問類、命名空間、結構體或枚舉類型中的成員,以及訪問全局變量和函數(shù)。
C++可以使用作用域運算符來區(qū)分同名的成員或變量,并指定需要訪問的特定成員或變量。例如,當一個類的成員與它的父類具有相同的名稱時,我們可以使用作用域運算符來訪問這個類所定義的成員,而不是其父類中的成員。此外,在多個源文件中實現(xiàn)相同的函數(shù)時,可以使用作用域運算符來分隔全局命名空間和局部命名空間。
e.g. 訪問類的成員
class A { public: int x; }; class B : public A { public: int x; }; int main() { B b; b.A::x = 5; // 訪問A類中的x成員 b.x = 10; // 訪問B類中的x成員 return 0; }
e.g. 訪問命名空間中的變量或函數(shù):
namespace MyNamespace { int x = 5; void printX() { std::cout << "x = " << x << std::endl; } } int main() { MyNamespace::printX(); // 訪問MyNamespace中的printX函數(shù) std::cout << "MyNamespace::x = " << MyNamespace::x << std::endl; // 訪問MyNamespace中的x變量 return 0; }
e.g. 訪問全局變量:
int x = 10; int main() { int x = 5; std::cout << "局部變量x = " << x << std::endl; std::cout << "全局變量x = " << ::x << std::endl; // 訪問全局命名 }
以上就是一文總結C++運算符的使用方法的詳細內容,更多關于C++ 運算符的資料請關注腳本之家其它相關文章!
相關文章
C/C++?Linux?Socket網(wǎng)絡編程流程分析
這篇文章主要介紹了C/C++?Linux?Socket網(wǎng)絡編程,Linux環(huán)境中的C/C++?socket?與Window環(huán)境中的C/C++?socket類似,本文所記錄的是TCP協(xié)議的socket編程,圖文實例相結合給大家介紹的非常詳細,需要的朋友可以參考下2023-02-02C++ 虛函數(shù)與純虛函數(shù)的使用與區(qū)別
本文主要介紹了C++ 虛函數(shù)與純虛函數(shù)的使用與區(qū)別,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-08-08