亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時(shí)間:2016年06月13日 16:04:45   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇深入理解c++指針的指針和指針的引用。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧

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

為什么需要使用它們

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

如果我們?cè)诜椒▋?nèi)部修改指針會(huì)出現(xiàn)問(wèn)題,在方法里做修改只是修改的指針的copy而不是指針本身,原來(lái)的指針還保留著原來(lái)

的值。我們用下邊的代碼說(shuō)明一下問(wèn)題:

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é)果

輸出的是兩個(gè)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)這個(gè)方法

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

•*p: 是被指向的指針,是一個(gè)地址。如果我們修改它,修改的是被指向的指針的內(nèi)容。換句話說(shuō),我們修改的是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++指針的指針和指針的引用就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

    C語(yǔ)言 遞歸解決青蛙跳臺(tái)階問(wèn)題

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

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

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

    C語(yǔ)言實(shí)現(xiàn)掃雷小游戲(擴(kuò)展版)

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

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

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

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

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

最新評(píng)論