溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C++表達(dá)式與運(yùn)算符的用法

發(fā)布時(shí)間:2021-08-24 09:40:12 來(lái)源:億速云 閱讀:107 作者:chen 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“C++表達(dá)式與運(yùn)算符的用法”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“C++表達(dá)式與運(yùn)算符的用法”吧!


C++表達(dá)式

天我們簡(jiǎn)單介紹一下C++中的表達(dá)式,那么什么是表達(dá)式呢?我所理解的就是能表示操作數(shù)之間運(yùn)算關(guān)系的表達(dá)式,那么表示操作數(shù)之間運(yùn)算關(guān)系的是怎么實(shí)現(xiàn)的呢?是由運(yùn)算符實(shí)現(xiàn)的,其實(shí)運(yùn)算符才是表達(dá)式中的關(guān)鍵所在。下面我們重點(diǎn)說(shuō)說(shuō)運(yùn)算符。

單目運(yùn)算符與雙目運(yùn)算符 

運(yùn)算符有單目運(yùn)算法與雙目運(yùn)算符之分。所謂單目運(yùn)算符就是使用時(shí)只需要一個(gè)操作數(shù),比如我們常見(jiàn)的取地址符(&),還有之前說(shuō)到vector與array中的解引用運(yùn)算符(*), 這個(gè)在C語(yǔ)言中,經(jīng)常被用來(lái)取某個(gè)地址所存內(nèi)容的值,因此又叫取值運(yùn)算符。

#include <vector>

int main(){

   int num = 10;
   std::vector<int> vec1={1, 2, 3, 4};
   for(auto 1 = vec1.begin(); 1 != vec1.end(); ++i)
       std::cout << *i << std::endl;
}
 

重載運(yùn)算符 

C++中有一種比較特殊的運(yùn)算符,重載運(yùn)算符。我們知道C++的運(yùn)算符可以用在基本內(nèi)置類型,也可以用在類類型。那么這兩者有什么不同呢?當(dāng)用于類類型時(shí),這些運(yùn)算符可以被用戶自定義,也就是說(shuō)它可以有新的含義。因?yàn)樾瓮x不同所以被稱作重載運(yùn)算符。

那么,我們?cè)谶@之前有沒(méi)有見(jiàn)過(guò)呢?當(dāng)然!其實(shí)我們常見(jiàn)的IO庫(kù)中 << 和 >>就是重載運(yùn)算符,除此之外,我們之前介紹的string, vector, array, 迭代器等,它們使用的運(yùn)算符都是重載運(yùn)算符。這樣初步看,重載運(yùn)算符相對(duì)于普通的運(yùn)算符更加靈活。實(shí)際上,重載運(yùn)算符就像是我們自己創(chuàng)造的一樣,我們可以定制化我們自己的運(yùn)算符。

左值和右值 

下面簡(jiǎn)單說(shuō)一下左值與右值,我剛學(xué)習(xí)C++的時(shí)候,有一個(gè)感覺(jué)就是,左值?右值?傻傻分不清楚!所以下面我一定要把這兩個(gè)概念講清楚,因?yàn)楹竺嫖覀儗W(xué)到C++中的高階用法時(shí),這兩個(gè)概念會(huì)時(shí)不時(shí)蹦出來(lái), 其實(shí)一查,也沒(méi)那么難。

C++表達(dá)式只可能是左值和右值其中的一種。左值與右值是由一定的歷史淵源的,它們繼承自祖輩C語(yǔ)言,只不過(guò)C語(yǔ)言中的概念很簡(jiǎn)單:就是左值能放在賦值符號(hào)的左邊,右值只能放在賦值符號(hào)的右邊。

然鵝,C++中的就要復(fù)雜得多,在不同的符號(hào)前,它們的用法不用,比如:

賦值運(yùn)算符、取地址符、內(nèi)置解引用運(yùn)算符、下標(biāo)運(yùn)算符等等,它們的用法都是不同的。

到此,相信大家對(duì)“C++表達(dá)式與運(yùn)算符的用法”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

c++
AI