欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++二級指針和指針的引用

 更新時間:2022年03月09日 14:25:50   作者:機器學(xué)習(xí)入坑者  
這篇文章主要介紹了C++二級指針和指針的引用,下文舉例實現(xiàn)形參指針改變實參指針所指向的對象,需要的小伙伴可以參考一下,希望對你的學(xué)習(xí)有所幫助

目的:形參指針改變實參指針所指向的對象(即地址)

舉例:pointer指針指向白鴨子whiteDuck,如果想要設(shè)計一個函數(shù),這個函數(shù)能夠令pointer指向黑鴨子blackDuck。

圖示如下:

代碼簡示如下:

Duck *duck = &oldDuck;
someFunction(duck);
// 此時duck指向newDuck;

1、形參與實參均為指針時達不到此目的

此時,二者指向同一地址,可以對同一對象進行操作。但是形參指針不能改變實參指針所指向的地址,因為二者是兩個完全無關(guān)的指針對象。函數(shù)傳遞參數(shù)時,將實參指針的值傳遞給形參指針,是一個值傳遞的過程。

2、解決方案——指針引用或二級指針

為了讓函數(shù)能夠更改實參指針所指向的地址,需要將實參的地址傳入函數(shù)。

此時有兩種策略來實現(xiàn)目的:

  • 形參為二級指針**p;
  • 形參為指針引用*&p;

下面分別對兩種方式進行介紹,并提供相應(yīng)的代碼。

其中Duck類的定義如下:

class Duck {
public:
?? ?Duck(int color) { this->color = color; }
? ? // 0表示白色,1表示黑色
?? ?int color = 0;
};

(1)形參為二級指針**p

此時,實參為指針的地址,形參為指針的指針,即形參指向?qū)崊?。形參對實參進行操作,而不是對實參指向的地址進行操作。

void changeObject(Duck **p) {
?? ?*p = new Duck(1);
}
// 調(diào)用方式
changeObject(&pointer);

(2)形參為指針引用*&p

指針引用即指針的引用,指針引用同樣是針對指針進行操作,而不是針對指針指向的地址進行操作:

void changeObject(Duck *&p) {
?? ?p = new Duck(1);
}
// 調(diào)用方式
changeObject(pointer);

3、總結(jié)

不管是C還是C++,指針都是非常重要的概念,使用的頻率也較高。二級指針和指針引用并不是完全相等的兩個概念,比如引用不能改變其指向的對象,但是指針可以指向任意的對象。

到此這篇關(guān)于C++二級指針和指針的引用的文章就介紹到這了,更多相關(guān)C++指針引用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++ 異常處理 catch(...)介紹

    C++ 異常處理 catch(...)介紹

    catch(…)能夠捕獲多種數(shù)據(jù)類型的異常對象,所以它提供給程序員一種對異常 對象更好的控制手段,使開發(fā)的軟件系統(tǒng)有很好的可靠性
    2013-09-09
  • 基于C語言中段錯誤的問題詳解

    基于C語言中段錯誤的問題詳解

    本篇文章是對C語言中段錯誤的問題進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C讀txt到二維數(shù)組的實現(xiàn)方法

    C讀txt到二維數(shù)組的實現(xiàn)方法

    下面小編就為大家?guī)硪黄狢讀txt到二維數(shù)組的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • C語言鏈表案例學(xué)習(xí)之通訊錄的實現(xiàn)

    C語言鏈表案例學(xué)習(xí)之通訊錄的實現(xiàn)

    為了將所學(xué)到的鏈表的知識進行鞏固學(xué)習(xí),做到學(xué)以致用,本文將利用鏈表制作一個簡單的通訊錄。文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2022-10-10
  • C語言數(shù)字圖像處理之直方圖均衡化

    C語言數(shù)字圖像處理之直方圖均衡化

    這篇文章主要為大家詳細介紹了C語言數(shù)字圖像處理之直方圖均衡化,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 超詳細的cmake入門教程

    超詳細的cmake入門教程

    這篇文章主要介紹了超詳細的cmake入門教程,需要的朋友可以參考下
    2020-02-02
  • C++實現(xiàn)LeetCode(23.合并k個有序鏈表)

    C++實現(xiàn)LeetCode(23.合并k個有序鏈表)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(23.合并k個有序鏈表),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • 64位linux 編譯c提示gnu/stubs-32.h:No such file or directory的解決方法

    64位linux 編譯c提示gnu/stubs-32.h:No such file or directory的解決方法

    這篇文章主要介紹了64位linux 編譯c提示gnu/stubs-32.h:No such file or directory的解決方法,需要的朋友可以參考下
    2020-03-03
  • C++ 雙鏈表的基本操作(詳解)

    C++ 雙鏈表的基本操作(詳解)

    下面小編就為大家?guī)硪黄狢++ 雙鏈表的基本操作(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • 使用C語言繪制柱形圖的示例代碼

    使用C語言繪制柱形圖的示例代碼

    常用的統(tǒng)計圖有條形圖、柱形圖、折線圖、曲線圖、餅圖、環(huán)形圖、扇形圖,這篇文章主要為大家介紹了C語言中繪制條形圖和柱形圖的方法,需要的可以參考下
    2024-02-02

最新評論