国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

C/C++編程筆記:C++中的指針與引用,又在什么時候使用?

2021-04-02 20:56 作者:C語言編程__Plus  | 我要投稿

C和C ++支持與大多數(shù)其他編程語言不同的指針。其他語言包括C ++,Java,Python,Ruby,Perl和PHP。?

從表面上看,引用和指針非常相似,都用于使一個變量提供對另一變量的訪問。兩者都提供了許多相同的功能,因此通常不清楚這些不同機(jī)制之間的區(qū)別。在本文中,我將嘗試說明指針和引用之間的區(qū)別。?


指針:指針是一個變量,用于保存另一個變量的內(nèi)存地址。需要使用*運算符將指針取消引用,以訪問其指向的內(nèi)存位置。?

引用:引用變量是別名,即已經(jīng)存在的變量的另一個名稱。引用(如指針)也通過存儲對象的地址來實現(xiàn)。?

可以將引用視為具有自動間接指向的常量指針(不要與指向常量值的指針混淆!),即編譯器將應(yīng)用*運算符。?

差異:??

1.初始化:

指針可以通過以下方式初始化:?

int a = 10;int * p =&a;? ? ? ? ? ??

?或者int * p;p =&a;我們可以在同一步驟或多行中聲明和初始化指針。

在引用中,?int a = 10;int&p = a; //它是正確的? 但int&p; p = a; //這是不正確的,因為我們應(yīng)該一步一步聲明和初始化引用。

注意:編譯器之間的差異可能有所不同。以上差異是針對Turbo IDE的。?


2.重新分配:可以重新分配指針。此屬性對于實現(xiàn)數(shù)據(jù)結(jié)構(gòu)(例如鏈表,樹等)很有用。

請參見以下示例:?

int a = 5;int b = 6;int * p;p =&a;p =&b;

另一方面,引用不能重新分配,必須在初始化時分配。

整數(shù)a = 5;int b = 6;int&p = a;int&p = b; //在這一行它將顯示錯誤,因為“不允許多個聲明”。但是,這是有效的聲明,int&q = p;

3.內(nèi)存地址:指針在堆棧上有其自己的內(nèi)存地址和大小,而引用共享相同的內(nèi)存地址(與原始變量),但也占用了堆棧上的一些空間。

? int&p = a;? cout <<&p << endl <<&a;

4.NULL值:指針可以直接分配為NULL,而引用則不能。與引用關(guān)聯(lián)的約束(無NULL,無重新分配)確?;A(chǔ)操作不會遇到異常情況。

5.間接:您可以使用指向提供額外級別間接的指針。而引用僅提供一種間接級別。即,?

在指針中整數(shù)a = 10;int * p;int ** q; //它是有效的。p =&a;q =&p;而在參考文獻(xiàn)中,int&p = a;整數(shù)&& q = p; //它是對引用的引用,因此是錯誤。

6.算術(shù)運算:可以對指針執(zhí)行各種算術(shù)運算,而沒有所謂的引用算術(shù)。(但是您可以像引用&obj + 5那樣獲取引用指向的對象的地址并對其進(jìn)行指針?biāo)阈g(shù))。 )?


何時使用什么

性能完全相同,因為引用在內(nèi)部作為指針實現(xiàn)。但是,您仍然可以記住一些要點,以決定何時使用什么:??

使用引用 :在函數(shù)參數(shù)和返回類型中。

使用指針: 如果需要使用指針?biāo)阈g(shù)或傳遞NULL指針,請使用指針。例如對于數(shù)組(請注意,數(shù)組訪問是使用指針?biāo)阈g(shù)實現(xiàn)的)。

由于要指向不同的單元格,因此要實現(xiàn)諸如鏈表,樹等的數(shù)據(jù)結(jié)構(gòu)及其算法,我們必須使用指針的概念。

C ++ FAQ Lite中引用:可以使用引用,而必須使用指針。每當(dāng)您不需要“重新放置”時,通常首選使用引用而不是使用指針。這通常意味著引用在類的公共接口中最有用。引用通常顯示在對象的外觀上,而指針則顯示在對象的外觀上。?

上面的例外是函數(shù)的參數(shù)或返回值需要“reseating”引用,即不引用對象的引用。通常最好通過返回/獲取一個指針,并賦予NULL指針特殊的意義來完成此操作(引用必須始終是別名對象,而不是取消引用的空指針)。?

每天學(xué)點小知識,希望對你有幫助~

另外如果你想更好的提升你的編程能力,學(xué)好C語言C++編程!彎道超車,快人一步!筆者這里或許可以幫到你~

微信公眾號:C語言編程學(xué)習(xí)基地

分享(源碼、項目實戰(zhàn)視頻、項目筆記,基礎(chǔ)入門教程)

歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長比自己琢磨更快哦!



C/C++編程筆記:C++中的指針與引用,又在什么時候使用?的評論 (共 條)

分享到微博請遵守國家法律
英德市| 甘洛县| 铜梁县| 凌海市| 昂仁县| 泾川县| 桂林市| 读书| 霍邱县| 墨玉县| 福清市| 清镇市| 申扎县| 丰县| 黔江区| 女性| 益阳市| 金华市| 万盛区| 墨江| 淮阳县| 威海市| 云阳县| 嘉峪关市| 富裕县| 包头市| 岳西县| 昆山市| 越西县| 长白| 平昌县| 邓州市| 阿鲁科尔沁旗| 泽普县| 绥江县| 钟祥市| 迁西县| 冕宁县| 巴里| 老河口市| 上犹县|