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

深入理解c++指針的指針和指針的引用

 更新時間:2016年06月13日 16:04:45   投稿:jingxian  
下面小編就為大家?guī)硪黄钊肜斫鈉++指針的指針和指針的引用。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考,一起跟隨小編過來看看吧

展示一下使用指針的指針和指針的引用修改傳遞給方法的指針,以便更好的使用它。(這里說的指針的指針不是一個二維數(shù)組)

為什么需要使用它們

當我們把一個指針做為參數(shù)傳一個方法時,其實是把指針的復本傳遞給了方法,也可以說傳遞指針是指針的值傳遞。

如果我們在方法內(nèi)部修改指針會出現(xiàn)問題,在方法里做修改只是修改的指針的copy而不是指針本身,原來的指針還保留著原來

的值。我們用下邊的代碼說明一下問題:

int m_value = 1;

void func(int *p)
{
  p = &m_value;
}

int main(int argc, char *argv[])
{
  int n = 2;
  int *pn = &n;
  cout << *pn << endl;
  func(pn);
  cout << *pn <<endl;
  return 0;
}

看一下輸出結(jié)果

輸出的是兩個2

使用指針的指針

展示一下使用指針的指針做為參數(shù)

void func(int **p)
{
  *p = &m_value;

  // 也可以根據(jù)你的需求分配內(nèi)存
  *p = new int;
  **p = 5;
}

int main(int argc, char *argv[])
{
  int n = 2;
  int *pn = &n;
  cout << *pn << endl;
  func(&pn);
  cout << *pn <<endl;
  return 0;
}

我們看一下 func(int **p)這個方法

•p:  是一個指針的指針,在這里我們不會去對它做修改,否則會丟失這個指針指向的指針地址

•*p: 是被指向的指針,是一個地址。如果我們修改它,修改的是被指向的指針的內(nèi)容。換句話說,我們修改的是main()方法里 *pn指針

•**p:兩次解引用是指向main()方法里*pn的內(nèi)容

指針的引用

再看一下指針的引用代碼

int m_value = 1;

void func(int *&p)
{
  p = &m_value;

  // 也可以根據(jù)你的需求分配內(nèi)存
  p = new int;
  *p = 5;
}

int main(int argc, char *argv[])
{
  int n = 2;
  int *pn = &n;
  cout << *pn << endl;
  func(pn);
  cout << *pn <<endl;
  return 0;
}

看一下func(int *&p)方法

•p: 是指針的引用,main()方法里的 *pn

•*p:是main()方法里的pn指向的內(nèi)容。

以上這篇深入理解c++指針的指針和指針的引用就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C語言循環(huán)鏈表實現(xiàn)貪吃蛇游戲

    C語言循環(huán)鏈表實現(xiàn)貪吃蛇游戲

    這篇文章主要為大家詳細介紹了C語言循環(huán)鏈表實現(xiàn)貪吃蛇,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • C++實現(xiàn)歌手比賽評分系統(tǒng)

    C++實現(xiàn)歌手比賽評分系統(tǒng)

    這篇文章主要為大家詳細介紹了C++實現(xiàn)歌手比賽評分系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C語言實現(xiàn)推箱子游戲完整代碼

    C語言實現(xiàn)推箱子游戲完整代碼

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)推箱子游戲完整代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • VS Code如何編寫C/C++程序的實現(xiàn)步驟

    VS Code如何編寫C/C++程序的實現(xiàn)步驟

    本文主要介紹了VS Code如何編寫C/C++程序的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • QT使用Http協(xié)議通信的實現(xiàn)示例

    QT使用Http協(xié)議通信的實現(xiàn)示例

    使用QT進行應用開發(fā)時,有時候需要進行客戶端和服務端的網(wǎng)絡通信,本文主要介紹了QT使用Http協(xié)議通信的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • C語言 遞歸解決青蛙跳臺階問題

    C語言 遞歸解決青蛙跳臺階問題

    遞歸做為一種算法在程序設計語言中廣泛應用?;竞x&#8203;是指函數(shù)/過程/子程序在運行過程序中直接或間接調(diào)用自身而產(chǎn)生的重入現(xiàn)象。在計算機編程里,遞歸指的是一個過程:函數(shù)不斷引用自身,直到引用的對象已知
    2021-11-11
  • QT實現(xiàn)視頻傳輸功能

    QT實現(xiàn)視頻傳輸功能

    這篇文章主要為大家詳細介紹了QT實現(xiàn)視頻傳輸功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • C語言實現(xiàn)掃雷小游戲(擴展版)

    C語言實現(xiàn)掃雷小游戲(擴展版)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)擴展版的掃雷小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C++實現(xiàn)打印1到最大的n位數(shù)

    C++實現(xiàn)打印1到最大的n位數(shù)

    這篇文章主要介紹了C++實現(xiàn)打印1到最大的n位數(shù),并分析了實現(xiàn)代碼中語句的跳轉(zhuǎn)技巧,需要的朋友可以參考下
    2014-09-09
  • 詳解C++11中綁定器bind的原理與使用

    詳解C++11中綁定器bind的原理與使用

    C++11中引入的function機制,其中綁定器主要有三種:bind1st、bind2nd、bind(C++11)。本文就來和大家聊聊這些綁定器的底層實現(xiàn)原理與使用場景,需要的可以參考一下
    2022-12-12

最新評論