欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來(lái)到入門教程網(wǎng)!

C語(yǔ)言

當(dāng)前位置:主頁(yè) > 軟件編程 > C語(yǔ)言 >

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

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語(yǔ)言|點(diǎn)擊: 次

展示一下使用指針的指針和指針的引用修改傳遞給方法的指針,以便更好的使用它。(這里說(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è)參考,也希望大家多多支持我們。

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有