青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

C語言二重指針的運用

『摘要』本文主要通過實例展示C/C++中二重指針的用法和用途,對于諸如二叉樹等遞歸定義的數(shù)據(jù)結(jié)構(gòu)有一定的指導(dǎo)作用

【關(guān)鍵字】:C/C++、二重指針、遞歸

本人最近想實現(xiàn)一個B+樹,雖然對B+樹的理論有一定的認(rèn)識,但由于考研花去大量時間復(fù)習(xí)功課,對C的一些細(xì)節(jié)有所遺忘,因此決定從二叉樹的實現(xiàn)開始。但剛寫完二叉樹的創(chuàng)建函數(shù)且在編譯通過之后,調(diào)試時卻出現(xiàn)了問題。二叉樹是一種遞歸定義的數(shù)據(jù)結(jié)構(gòu),因此其創(chuàng)建函數(shù)也必定是遞歸的。其創(chuàng)建函數(shù)描述如下:

                  二叉樹創(chuàng)建函數(shù)

理論上沒有錯誤,同時在創(chuàng)建二叉樹時也能成功,但通過本人編寫的先序遍歷該二叉樹時,卻顯示0,即空的二叉樹,相關(guān)操作代碼如下:

//具體的操作步驟

TREE tree = 0; //TREE為二叉樹結(jié)構(gòu)體的指針型別

createBinaryTree(tree);

//先序遍歷

由于結(jié)果錯誤,因此開始調(diào)試,通過觀察發(fā)現(xiàn)當(dāng)createVinartTree(tree)操作完成后tree的屬性仍然為0,即仍然tree=0。后來又通過仔細(xì)分析,發(fā)現(xiàn)問題出在函數(shù)的參數(shù)上。雖然該函數(shù)傳入的是指針型別,屬于實參,但是該函數(shù)內(nèi)部主要以原指針作為操作對象,因此相對于指針來說,傳入的只是結(jié)構(gòu)體指針的形參。所以,在函數(shù)內(nèi)部操作的只是一個副本,因此二叉樹的創(chuàng)建失敗。

為了解決這個問題,筆者決定驗證自己的想法是否正確,于是寫了如下一段測試代碼,代碼如下:

//版本1

typedef struct student {

    char* name;

    int age;

}Student,*STUDENT;

 

void getInstance(STUDENT s);

 

int main(){

    Student* st = 0;

    printf("指針st的地址=%d\n",&st);

    getInstance(st);

    printf("st新實例的地址=%d\n",st);

    return 1;

}

void getInstance(STUDENT s){

    printf("指針S的地址 =%d\n",&s);

    s = (Student*)malloc(sizeof(student));

    printf("s新實例的地址=%d\n",s);

}

這個函數(shù)的傳值形式與之前二叉樹的函數(shù)差不多,因此可以類比,具體運行之后得到的記過是(如圖):

2 版本1的運行結(jié)果

 

結(jié)果很顯然,指針傳入函數(shù)之后產(chǎn)生了一個新的副本,對副本的任何操作,都不會影響到原指針指向的結(jié)構(gòu)體,與二叉樹創(chuàng)建失敗類似,目的指針的副本指向了目標(biāo)結(jié)構(gòu)體,產(chǎn)生了內(nèi)存泄漏。

這個問題的解決也十分的簡單,將結(jié)構(gòu)體的指針作為實參傳入函數(shù)即可,這樣就可以直接操作目標(biāo)指針,也就不會出現(xiàn)錯誤的結(jié)果。運用二重指針可以輕松實現(xiàn),具體修改如下:

//版本2

typedef struct student {

 char* name;

 int age;

}Student,**STUDENT;

 

void getInstance(STUDENT s);

 

int main(){

 Student* st = 0;

    printf("指針st的地址=%d\n",&st);

  getInstance(&st);

    printf("st新實例的地址=%d\n",st);

 return 1;

}

void getInstance(STUDENT s){

 printf("指針S的地址 =%d\n",s);

 *s = (Student*)malloc(sizeof(student));

 printf("s新實例的地址=%d\n",*s);

}

修改部分如黑體部分所示,具體的運行結(jié)果如下圖:

 3 版本2的運行結(jié)果

測試成功,函數(shù)內(nèi)部操作的指針就是實際傳入的指針,即通過二重指針實現(xiàn)了目標(biāo)操作指針的實參傳遞,因此能達(dá)到預(yù)想的結(jié)果。這也說明了二重指針的實際用處。

posted on 2010-01-26 22:49 望見 閱讀(2050) 評論(1)  編輯 收藏 引用 所屬分類: C++

評論

# re: C語言二重指針的運用 2010-01-30 11:14 noside

傳值和傳地址  回復(fù)  更多評論   


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


<2025年12月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

導(dǎo)航

統(tǒng)計

留言簿(1)

隨筆分類(4)

隨筆檔案(4)

文章分類(2)

文章檔案(2)

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产女人精品视频| 国产日韩欧美精品在线| 亚洲欧洲日本国产| 欧美激情国产日韩| 欧美国产三级| 亚洲一区欧美二区| 亚洲午夜av在线| 国产午夜精品美女毛片视频| 久久九九免费视频| 久久久一二三| 日韩午夜中文字幕| 亚洲图中文字幕| 国产综合久久| 亚洲国产成人精品久久| 欧美肥婆在线| 午夜亚洲福利| 久久欧美肥婆一二区| 日韩视频久久| 亚洲自拍偷拍视频| 亚洲国产天堂久久综合网| 亚洲欧洲日产国产网站| 国产精品萝li| 欧美大尺度在线| 欧美日韩在线三区| 久久久久久香蕉网| 欧美激情精品久久久六区热门| 亚洲网站啪啪| 久久久久综合一区二区三区| 日韩一级片网址| 欧美一区2区三区4区公司二百| 影音先锋亚洲精品| 一本色道88久久加勒比精品| 在线免费高清一区二区三区| 夜夜嗨av色一区二区不卡| 国产一区日韩欧美| 日韩一级免费观看| 亚洲高清久久网| 亚洲午夜黄色| 99国产一区| 久久精品日产第一区二区三区| 99精品国产高清一区二区| 午夜久久一区| 在线性视频日韩欧美| 久久久精彩视频| 午夜精品久久久| 亚洲午夜免费视频| 久久天天狠狠| 久久高清免费观看| 国产精品电影在线观看| 欧美国产高清| 永久91嫩草亚洲精品人人| 亚洲在线观看免费| 亚洲无线一线二线三线区别av| 久色婷婷小香蕉久久| 久久久久国产精品人| 国产精品免费看久久久香蕉| 亚洲乱码国产乱码精品精98午夜| 在线观看成人av| 午夜精品亚洲| 亚洲欧美卡通另类91av| 欧美激情按摩在线| 亚洲国产精品第一区二区| 在线精品国产成人综合| 久久精品国产99国产精品| 欧美一区在线视频| 国产乱码精品1区2区3区| 国产精品99久久久久久久vr| 一本久久综合亚洲鲁鲁五月天| 欧美顶级艳妇交换群宴| 欧美国产精品v| 亚洲人永久免费| 欧美久久影院| 亚洲日本欧美天堂| 99精品视频免费全部在线| 欧美电影免费观看高清完整版| 欧美激情bt| 日韩视频免费看| 欧美激情一级片一区二区| 亚洲激情视频| 亚洲视频第一页| 国产精品家庭影院| 午夜精品福利视频| 久久视频一区二区| 1024精品一区二区三区| 欧美成人a∨高清免费观看| 亚洲国产精品一区二区尤物区 | 亚洲一区二区免费看| 亚洲午夜影视影院在线观看| 欧美三级不卡| 午夜欧美电影在线观看| 六月婷婷一区| 亚洲免费不卡| 国产精品尤物| 久久性天堂网| 夜夜嗨av一区二区三区网站四季av| 亚洲一区国产| 国产欧美在线| 久久综合伊人77777| 亚洲免费观看| 欧美中文日韩| 亚洲黄色在线观看| 国产精品久久9| 久久久综合激的五月天| 99香蕉国产精品偷在线观看| 久久精品国产欧美亚洲人人爽| 亚洲国产经典视频| 国产精品久久久久av免费| 久久久久久久久久久久久女国产乱| 亚洲第一毛片| 久久精品91| 99国产精品自拍| 激情av一区二区| 欧美日韩亚洲精品内裤| 久久精品国产视频| 在线亚洲国产精品网站| 欧美不卡在线视频| 欧美一级视频精品观看| 亚洲精品欧美日韩专区| 国产日韩欧美在线一区| 欧美日韩第一区| 久久久久久尹人网香蕉| 亚洲午夜激情在线| 日韩视频免费大全中文字幕| 看欧美日韩国产| 欧美一区二区三区电影在线观看| 亚洲精品在线二区| 影音先锋日韩有码| 国产日韩欧美成人| 国产精品爱啪在线线免费观看| 你懂的网址国产 欧美| 久久精品人人做人人爽| 亚洲欧美日韩一区二区在线| 一区二区三区免费网站| 亚洲第一色中文字幕| 免费不卡视频| 久久久青草婷婷精品综合日韩| 午夜精品免费视频| 亚洲午夜免费福利视频| 国产精品99久久不卡二区| 亚洲人成网站影音先锋播放| 伊人春色精品| 黄色av成人| 激情婷婷亚洲| 在线成人av网站| 伊人成人在线视频| 亚洲福利精品| 亚洲国产网站| 亚洲精品国精品久久99热| 91久久精品日日躁夜夜躁欧美 | 欧美日韩国产在线看| 欧美大片第1页| 欧美激情精品久久久久久| 欧美国产亚洲另类动漫| 欧美激情视频在线播放| 欧美精品一区二区三区在线看午夜 | 一区二区欧美在线| 一区二区三区欧美亚洲| 亚洲在线国产日韩欧美| 亚洲欧美成人| 久久精品综合| 噜噜噜久久亚洲精品国产品小说| 美女精品自拍一二三四| 欧美激情在线| 夜久久久久久| 性色av一区二区怡红| 久久精品99无色码中文字幕 | 亚洲视频一区二区在线观看| 亚洲一区二区黄色| 欧美一区二区视频网站| 久久久久久久久久久久久9999 | 午夜精品福利在线| 久久这里只有| 欧美日韩成人在线播放| 国产精品自拍三区| 亚洲第一中文字幕| 亚洲一区二区三区色| 久久精品亚洲一区二区三区浴池| 老牛嫩草一区二区三区日本| 亚洲激情女人| 欧美一区二区女人| 免费在线一区二区| 国产精品久久久久久妇女6080| 国产一区在线免费观看| 亚洲欧洲在线看| 欧美诱惑福利视频| 亚洲国产va精品久久久不卡综合| 亚洲视屏在线播放| 另类图片综合电影| 国产精品亚洲视频| 亚洲欧洲综合另类| 久久精品视频亚洲| 日韩视频永久免费| 久久久一区二区三区| 国产精品久久久一本精品| 亚洲日本成人网| 久久亚洲精品欧美| 亚洲一区二区三区三| 欧美大色视频| 亚洲电影免费在线观看| 欧美一区二区女人|