一文總結(jié)C++運(yùn)算符的使用方法
1. 算術(shù)運(yùn)算符
算術(shù)運(yùn)算符用于執(zhí)行基本數(shù)學(xué)運(yùn)算,例如加減乘除和取模等操作。下表列出了C++中支持的算術(shù)運(yùn)算符:
| 運(yùn)算符 | 描述 | 示例 |
|---|---|---|
| + | 加法 | a+ ++b |
| − | 減法 | a-b |
| ∗ | 乘法 | a∗ *∗b |
| / | 除法 | a/ //b |
| 取模 | ab |
其中,a和b代表要進(jìn)行計(jì)算的兩個(gè)變量或值。
(1)加法運(yùn)算符
加法運(yùn)算符(+)用于將兩個(gè)值相加。如果兩個(gè)操作數(shù)都是數(shù)字,則它們將被相加。如果其中一個(gè)操作數(shù)是字符串,則它們將被連接起來(lái)。
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)減法運(yùn)算符
減法運(yùn)算符(-)用于將第一個(gè)操作數(shù)減去第二個(gè)操作數(shù)。
e.g.
int a = 5; int b = 3; int c = a - b; // c的值為2
(3)乘法運(yùn)算符
乘法運(yùn)算符(*)用于將兩個(gè)數(shù)相乘。
e.g.
int a = 5; int b = 3; int c = a * b; // c的值為15
注意,C++中整數(shù)除法返回整數(shù)結(jié)果,即舍去小數(shù)部分。
(5)取模運(yùn)算符
取模運(yùn)算符(%)返回除法的余數(shù)。
e.g.
int a = 7; int b = 3; int c = a % b; // c的值為1
2. 關(guān)系運(yùn)算符
關(guān)系運(yùn)算符用于比較兩個(gè)值并返回布爾值(true或false)。下表列出了C++中支持的關(guān)系運(yùn)算符:
| 運(yùn)算符 | 描述 | 示例 |
|---|---|---|
| == | 相等 | a == b |
| != | 不相等 | a != b |
| > | 大于 | a > b |
| >= | 大于等于 | a >= b |
| <= | 小于等于 | a <= b |
其中,a和b代表要進(jìn)行比較的兩個(gè)變量或值。
(1)相等和不相等運(yùn)算符
相等運(yùn)算符(==)用于比較兩個(gè)值是否相等。如果它們相等,則返回true,否則返回false。
e.g.
int a = 5; int b = 3; bool c = (a == b); // c的值為false
不相等運(yùn)算符(!=)用于比較兩個(gè)值是否不相等。如果它們不相等,則返回true,否則返回false。
e.g.
int a = 5; int b = 3; bool c = (a != b); // c的值為true
(2)大于和小于運(yùn)算符
大于運(yùn)算符(>)用于比較第一個(gè)操作數(shù)是否大于第二個(gè)操作數(shù)。如果是,則返回true,否則返回false。
e.g.
int a = 5; int b = 3; bool c = (a > b); // c的值為true
小于運(yùn)算符(<)用于比較第一個(gè)操作數(shù)是否小于第二個(gè)操作數(shù)。如果是,則返回true,否則返回false。
e.g
int a = 5; int b = 3; bool c = (a < b); // c的值為false
(3)大于等于和小于等于運(yùn)算符
大于等于運(yùn)算符(>=)用于比較第一個(gè)操作數(shù)是否大于或等于第二個(gè)操作數(shù)。如果是,則返回true,否則返回false。
e.g.
int a = 5; int b = 3; bool c = (a >= b); // c的值為true
小于等于運(yùn)算符(<=)用于比較第一個(gè)操作數(shù)是否小于或等于第二個(gè)操作數(shù)。如果是,則返回true,否則返回false。
e.g.
int a = 5; int b = 3; bool c = (a <= b); // c的值為false
3. 邏輯運(yùn)算符
邏輯運(yùn)算符用于執(zhí)行布爾邏輯操作。下表列出了C++中支持的邏輯運(yùn)算符:
| 運(yùn)算符 | 描述 | 示例 |
|---|---|---|
| && | 邏輯與 | a && b |
| || | 邏輯或 | a |
| ! | 邏輯非 | !a |
其中,a和b代表要進(jìn)行邏輯運(yùn)算的兩個(gè)布爾值。
(1)邏輯與運(yùn)算符
邏輯與運(yùn)算符(&&)用于檢查兩個(gè)條件是否都為真。只有當(dāng)兩個(gè)條件都為真時(shí),才會(huì)返回true,否則返回false。
e.g.
bool a = true; bool b = false; bool c = (a && b); // c的值為false
(3)邏輯非運(yùn)算符
邏輯非運(yùn)算符(!)用于翻轉(zhuǎn)一個(gè)布爾值。如果輸入為true,則返回false,否則返回true。
e.g.
bool a = true; bool b = !a; // b的值為false
4. 按位運(yùn)算符
按位運(yùn)算符用于操作二進(jìn)制數(shù)據(jù)。下表列出了C++中支持的按位運(yùn)算符:
| 運(yùn)算符 | 描述 | 示例 |
|---|---|---|
| & | 按位與 | a & b |
| | | 按位或 | a |
| ^ | 按位異或 | a ^ b |
| ~ | 取反 | ~a |
| << | 左移 | a << b |
| >> | 右移 | a >> b |
其中,a和b代表要進(jìn)行按位運(yùn)算的兩個(gè)整數(shù)。
(1)按位與運(yùn)算符
按位與運(yùn)算符(&)將兩個(gè)二進(jìn)制數(shù)的每一位進(jìn)行比較,并且如果兩位都為1,則該位輸出1,否則輸出0。
e.g.
int a = 5; // 二進(jìn)制表示為101 int b = 3; // 二進(jìn)制表示為011 int c = a & b; // c的值為1,二進(jìn)制表示為001
(2)按位或運(yùn)算符
按位或運(yùn)算符(|)將兩個(gè)二進(jìn)制數(shù)的每一位進(jìn)行比較,并且如果任意一位為1,則該位輸出1,否則輸出0。
e.g.
int a = 5; // 二進(jìn)制表示為101 int b = 3; // 二進(jìn)制表示為011 int c = a \| b; // c的值為7,二進(jìn)制表示為111
(3)按位異或運(yùn)算符
按位異或運(yùn)算符將兩個(gè)整數(shù)的二進(jìn)制表示進(jìn)行“異或”操作,并返回一個(gè)新的整數(shù)。當(dāng)兩個(gè)比特位相同時(shí),該比特位結(jié)果為 0,否則為 1。
e.g.
int a = 5; // 二進(jìn)制 101 int b = 3; // 二進(jìn)制 011 int c = a ^ b; // 二進(jìn)制 110 (即十進(jìn)制 6)
(4)按位取反運(yùn)算符
按位取反運(yùn)算符對(duì)整數(shù)的二進(jìn)制表示進(jìn)行取反操作,并返回一個(gè)新的整數(shù)。當(dāng)一個(gè)比特位為 0 時(shí),結(jié)果為 1,否則為 0。
e.g
int a = 5; // 二進(jìn)制 101 int b = ~a; // 二進(jìn)制 010 (即十進(jìn)制 2)
(5)左移位運(yùn)算符
左移位運(yùn)算符將一個(gè)整數(shù)的二進(jìn)制表示向左移動(dòng)指定的位數(shù),并返回一個(gè)新的整數(shù)。左移 n 位相當(dāng)于將這個(gè)數(shù)乘以 2 的 n 次方。
e.g.
int a = 5; // 二進(jìn)制 101 int b = a << 1; // 二進(jìn)制 1010 (即十進(jìn)制 10)
(6)右移位運(yùn)算符
右移位運(yùn)算符將一個(gè)整數(shù)的二進(jìn)制表示向右移動(dòng)指定的位數(shù),并返回一個(gè)新的整數(shù)。右移 n 位相當(dāng)于將這個(gè)數(shù)除以 2 的 n 次方。
e.g.
int a = 5; // 二進(jìn)制 101 int b = a >> 1; // 二進(jìn)制 10 (即十進(jìn)制 2)
5. 取地址運(yùn)算符
C++中,取地址運(yùn)算符用于獲取變量或?qū)ο蟮膬?nèi)存地址,表示為&,并且可以應(yīng)用于任何變量、指針或?qū)ο?。使用取地址運(yùn)算符可以在程序中有效地管理內(nèi)存和數(shù)據(jù)結(jié)構(gòu)。
取地址運(yùn)算符的一般語(yǔ)法如下:
&variable // 獲取變量的地址 &object // 獲取對(duì)象的地址 &type // 獲取類型的地址
其中,“variable”表示要獲取地址的變量,“object”表示要獲取地址的對(duì)象,“type”表示要獲取地址的類型。
e.g.
int a = 10; int* ptr = &a; // 使用取地址運(yùn)算符獲取變量a的地址,并將其存儲(chǔ)在指針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;
上述代碼首先定義一個(gè)整數(shù)變量“a”,然后使用取地址運(yùn)算符&獲取它的地址,并將其存儲(chǔ)在指針“ptr”中。接下來(lái)打印出變量“a”的值和地址、指針“ptr”的值以及指針?biāo)赶虻闹怠?/p>
輸出結(jié)果應(yīng)該與以下內(nèi)容類似:
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
從輸出結(jié)果可以看出,變量“a”的地址與指針“ptr”的值相同,并且指針?biāo)赶虻闹蹬c變量“a”的值相同。
6. 取內(nèi)容運(yùn)算符
在C++中,取內(nèi)容運(yùn)算符用于獲取指針?biāo)赶虻闹担硎緸?code>*,并且可以應(yīng)用于任何指針變量。
取內(nèi)容運(yùn)算符的一般語(yǔ)法如下:
*pointer // 獲取指針?biāo)赶虻闹?
其中,“pointer”表示要獲取值的指針變量。
e.g.
int a = 10; int* ptr = &a; // 使用取地址運(yùn)算符獲取變量a的地址,并將其存儲(chǔ)在指針ptr中 cout << "The value of a is: " << a << endl; cout << "The value pointed to by ptr is: " << *ptr << endl;
上述代碼首先定義一個(gè)整數(shù)變量“a”,然后使用取地址運(yùn)算符&獲取它的地址,并將其存儲(chǔ)在指針“ptr”中。接下來(lái)打印出變量“a”的值和指針“ptr”所指向的值。
輸出:
The value of a is: 10
The value pointed to by ptr is: 10
從輸出結(jié)果可以看出,指針“ptr”所指向的值與變量“a”的值相同。
7. 成員選擇符
在C++中,成員選擇符用于訪問(wèn)類的成員變量和成員函數(shù)。它表示為.(點(diǎn)號(hào)),并且可以應(yīng)用于任何已定義的對(duì)象。使用成員選擇符可以操作和修改對(duì)象的成員,從而實(shí)現(xiàn)面向?qū)ο缶幊獭?/p>
成員選擇符的一般語(yǔ)法如下:
object.member // 訪問(wèn)成員變量或成員函數(shù)
其中,“object”表示要訪問(wèn)成員的對(duì)象,“member”表示要訪問(wèn)的成員變量或成員函數(shù)。
e.g.
class MyClass {
public:
int myVar;
void myFunc() {
cout << "Hello, world!" << endl;
}
};
MyClass obj; // 創(chuàng)建MyClass對(duì)象
obj.myVar = 42; // 使用成員選擇符訪問(wèn)myVar成員變量
cout << "The value of myVar is: " << obj.myVar << endl;
obj.myFunc(); // 使用成員選擇符調(diào)用myFunc成員函數(shù)
上述代碼首先定義了一個(gè)名為“MyClass”的類,該類包含一個(gè)整數(shù)類型的成員變量“myVar”和一個(gè)無(wú)參數(shù)無(wú)返回值的成員函數(shù)“myFunc”。接下來(lái)創(chuàng)建了一個(gè)名為“obj”的MyClass對(duì)象,并使用成員選擇符訪問(wèn)其成員變量和成員函數(shù)。
輸出:
The value of myVar is: 42
Hello, world!
從輸出結(jié)果可以看出,我們成功地使用成員選擇符訪問(wèn)了MyClass對(duì)象的成員變量和成員函數(shù)。
成員選擇符 -> 用于訪問(wèn)結(jié)構(gòu)體和類指針?biāo)赶虻某蓡T。它通常與動(dòng)態(tài)內(nèi)存分配函數(shù) new 結(jié)合使用,來(lái)創(chuàng)建對(duì)象并進(jìn)行操作。
e.g.
struct Person {
std::string name;
int age;
};
int main() {
// 創(chuàng)建Person結(jié)構(gòu)體指針p
Person *p = new Person();
// 通過(guò)成員選擇符->訪問(wèn)p所指向的name成員變量
p->name = "John";
// 通過(guò)成員選擇符->訪問(wèn)p所指向的age成員變量
p->age = 30;
delete p;
return 0;
}
上述代碼在動(dòng)態(tài)內(nèi)存中分配了一個(gè)新的Person結(jié)構(gòu)體,并將其作為指針p進(jìn)行訪問(wèn)。然后使用成員選擇符 -> 訪問(wèn)指針p所指向的name和age成員。
需要注意的是,當(dāng)使用普通對(duì)象(即不是指針)時(shí),必須使用句點(diǎn) . 而不是 -> 來(lái)訪問(wèn)成員。
8. 作用域運(yùn)算符
C++的作用域運(yùn)算符 :: 用于訪問(wèn)類、命名空間、結(jié)構(gòu)體或枚舉類型中的成員,以及訪問(wèn)全局變量和函數(shù)。
C++可以使用作用域運(yùn)算符來(lái)區(qū)分同名的成員或變量,并指定需要訪問(wèn)的特定成員或變量。例如,當(dāng)一個(gè)類的成員與它的父類具有相同的名稱時(shí),我們可以使用作用域運(yùn)算符來(lái)訪問(wèn)這個(gè)類所定義的成員,而不是其父類中的成員。此外,在多個(gè)源文件中實(shí)現(xiàn)相同的函數(shù)時(shí),可以使用作用域運(yùn)算符來(lái)分隔全局命名空間和局部命名空間。
e.g. 訪問(wèn)類的成員
class A {
public:
int x;
};
class B : public A {
public:
int x;
};
int main() {
B b;
b.A::x = 5; // 訪問(wèn)A類中的x成員
b.x = 10; // 訪問(wèn)B類中的x成員
return 0;
}
e.g. 訪問(wèn)命名空間中的變量或函數(shù):
namespace MyNamespace {
int x = 5;
void printX() {
std::cout << "x = " << x << std::endl;
}
}
int main() {
MyNamespace::printX(); // 訪問(wèn)MyNamespace中的printX函數(shù)
std::cout << "MyNamespace::x = " << MyNamespace::x << std::endl; // 訪問(wèn)MyNamespace中的x變量
return 0;
}
e.g. 訪問(wèn)全局變量:
int x = 10;
int main() {
int x = 5;
std::cout << "局部變量x = " << x << std::endl;
std::cout << "全局變量x = " << ::x << std::endl; // 訪問(wèn)全局命名
}
以上就是一文總結(jié)C++運(yùn)算符的使用方法的詳細(xì)內(nèi)容,更多關(guān)于C++ 運(yùn)算符的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C++使用ffmpeg實(shí)現(xiàn)rtsp取流的代碼
這篇文章主要介紹了C++使用ffmpeg實(shí)現(xiàn)rtsp取流,文章介紹了ffmepg采用rtsp取流流程圖,CMakeLists.txt編寫方法,通過(guò)示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04
OpenCV使用BSM統(tǒng)計(jì)視頻中移動(dòng)的對(duì)象
這篇文章主要為大家詳細(xì)介紹了OpenCV如何使用BackgroundSubstractor(BSM)實(shí)現(xiàn)視頻中移動(dòng)對(duì)象統(tǒng)計(jì)功能,文中的示例代碼講解詳細(xì),需要的可以參考一下2023-02-02
C++實(shí)現(xiàn)LeetCode(7.翻轉(zhuǎn)整數(shù))
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(7.翻轉(zhuǎn)整數(shù)),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
C++拷貝構(gòu)造函數(shù)(深拷貝與淺拷貝)詳解
深拷貝和淺拷貝可以簡(jiǎn)單理解為:如果一個(gè)類擁有資源,當(dāng)這個(gè)類的對(duì)象發(fā)生復(fù)制過(guò)程的時(shí)候,資源重新分配,這個(gè)過(guò)程就是深拷貝,反之,沒有重新分配資源,就是淺拷貝2013-09-09
使用Qt的QChartView實(shí)現(xiàn)縮放和放大功能
QCustomPlot是一個(gè)小型的Qt畫圖標(biāo)類,支持繪制靜態(tài)曲線、動(dòng)態(tài)曲線、多重坐標(biāo)曲線,柱狀圖,蠟燭圖,這篇文章主要介紹了Qt的QChartView實(shí)現(xiàn)縮放和放大功能,需要的朋友可以參考下2022-09-09
c語(yǔ)言實(shí)現(xiàn)找最大值最小值位置查找
這篇文章主要介紹了c語(yǔ)言實(shí)現(xiàn)找最大值最小值位置查找,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
C語(yǔ)言中volatile關(guān)鍵字的深入講解
在程序設(shè)計(jì)中,尤其是在C語(yǔ)言、C++、C#和Java語(yǔ)言中,使用volatile關(guān)鍵字聲明的變量或?qū)ο笸ǔ>哂信c優(yōu)化、多線程相關(guān)的特殊屬性,這篇文章主要給大家介紹了關(guān)于C語(yǔ)言volatile關(guān)鍵字的相關(guān)資料,需要的朋友可以參考下2021-07-07
c++帶有string的結(jié)構(gòu)體賦值和清零問(wèn)題
這篇文章主要介紹了c++帶有string的結(jié)構(gòu)體賦值和清零問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01

