傳值的一點認識

2021-07-06 03:28:20 字數 776 閱讀 4483

今天又把c++課本翻了一遍,發現了好多以前沒徹底弄清楚的問題,比如說傳值。

說起傳值,最先想到的恐怕是賦值,他是最基本的傳值方式,不過有時候我們希望用另外的方式來傳值。傳值一共有三種方式,第一種是賦值,第二種是指標(傳位址),第三種是引用。

三種方式的區別:

賦值是最簡單的,打個比方說,它實質上是把 你copy出另乙個你放到棧裡(可以理解成客棧,呵呵,雖然不太恰當),然後對copy的那個你進行操作,比如這種操作是打殘,那麼copy的那個你就殘了,如果有return返回,返回的是那個copy的你,第二天報紙說***被打殘了,實際上原來的你老老實實在家呆著,沒有變化,但是那個copy的你代替了真實的你,別人看到報紙後,就會以為你真的殘了(實際上你好好著呢,殘的是copy的那個你),這就是賦值的特點,傳值時不改變內容。

傳位址相對難理解一點,你就當指標是gps吧,如果我想找你,就通過gps定位你的位址,然後通過去內容把你從位址中揪出來,對位址中的你操作和對你直接操作是一樣的,我想轟炸你,可以直接對你轟炸,也可以轟炸你的位址,最後結果都是轟炸到你。指標還有個靈活性,我不想轟炸你了,想轟炸你的鄰居,那麼把指標挪一下就行了。指標傳值是對位址中內容進行操作,會改變原有的值。

最後乙個是引用傳值,我們語文上講的引用,是把別人的話拿過來變成自己的,傳值也和這差不多,比如說你叫張三,然後我們給你取外號叫三三,那麼對三三的操作等同於對張三的操作,我們叫三三,那麼張三就會答應,引用也就相當於取個新名字,當然,引用會改變原有的值。

注:指標很強大,如果比作一把刀,那麼這把刀可以殺豬 ,可以砍柴,可以切菜.....不過也很危險,它還可以殺人,使用時要細心。?

weak ptr的一點認識

近期在補充和梳理c 方面的知識的時候,遇到了weakptr這個概念和用法,不甚明白,google出了一堆文字,包括boost的shared ptr和weak ptr的比較,以及其他一些部落格裡面給的例子以及解釋。其中有乙個是這樣解釋的,原文大意 在c 的weak ptr裡面,有兩類指標,一類是擁有物...

SLAM的一點認識

那會兒確確實實學習到了很多技能,但對slam的理解還是不是那麼透徹。後來因為被叫去做其他專案,就沒有再接著往下研究了。下面附一下lsd slam的相關 感興趣的朋友可以去關注一下。lsd slam的主頁 github 隨著專案的需要,以及視覺幾何知識的積累,現在需要用到目前更高效 更便於二次開發的最...

SLAM的一點認識

那會兒確確實實學習到了很多技能,但對slam的理解還是不是那麼透徹。後來因為被叫去做其他專案,就沒有再接著往下研究了。下面附一下lsd slam的相關 感興趣的朋友可以去關注一下。lsd slam的主頁 github 隨著專案的需要,以及視覺幾何知識的積累,現在需要用到目前更高效 更便於二次開發的最...