• <em id="6vhwh"><rt id="6vhwh"></rt></em>

    <style id="6vhwh"></style>

    <style id="6vhwh"></style>
    1. <style id="6vhwh"></style>
        <sub id="6vhwh"><p id="6vhwh"></p></sub>
        <p id="6vhwh"></p>
          1. 国产亚洲欧洲av综合一区二区三区 ,色爱综合另类图片av,亚洲av免费成人在线,久久热在线视频精品视频,成在人线av无码免费,国产精品一区二区久久毛片,亚洲精品成人片在线观看精品字幕 ,久久亚洲精品成人av秋霞

            vc6.0英文版(vc6.0英文版安裝教程)

            更新時間:2023-03-02 10:05:48 閱讀: 評論:0

            上一篇寫了結構產生的原因以及一些常識的結論,一般來說,常用的知識點就是這些,基本夠用,但有時也容易產生一些小錯誤,這篇簡單寫下, 主要面向初學者。

            傳指針的小問題

            在C語言中,函數傳參都是傳值。有同學表示反對:書上是這么說的,可以傳值,也可以傳引用(地址)。其實是,兩者都是傳值。

            比如

            void test_pointer(int *p){ printf("%d ",*p);}int main(int argc, char* argv[]){ int a=10; test_pointer(&a); //傳地址 return 0;}

            調用test_pointer函數時,將a的地址傳過去,我們知道地址是一個固定長度的4字節整數值(以VC6.0環境為例),test_pointer的函數棧中也會準備4字節來存放這個值,因此是傳值。如下圖所示:

            如圖所示,相當于將a的地址值0x0019fecc傳過去,那么函數棧中也就有了一份地址數據。因此,結論是:傳地址也只是傳值。

            有地址只能讀不能修改

            這句話主要針對動態分配來說的,有一個指針p1傳過去,賦值給參數p2,相當于有兩個地址,且p1=p2。如果在函數內部進行malloc分配,并賦值給p2,但p1并未改變,只是因為兩者都只是4字節大小的普通值。代碼如下:

            void test_pointer(char *p2){ //p2變化了 p2=(char*)malloc(100);}int main(int argc, char* argv[]){ char *p1; test_pointer(p1); return 0;}

            那么怎么辦呢?只能將函數參數改為指向指針的指針。代碼如下:

            void test_pointer(char* *p2){ //*p2就是p1的值 *p2=(char*)malloc(100);}int main(int argc, char* argv[]){ char *p1; test_pointer(&p1); printf("%p ",p1); return 0;}

            【分析】對于熟練的程序員來說不是一個問題,但對于初學者來說,是一個比較隱諱的錯誤。指向指針的指針比較麻煩一些,在C++中通過引用解決這個問題,代碼如下:

            void test_pointer(char* &p2){ //引用之后p2就是p1 p2=(char*)malloc(100); p2[0]='a';}int main(int argc, char* argv[]){ char* p1; test_pointer(p1); printf("%c ",p1[0]); // 'a' return 0;}

            但是覺得代碼還是不夠清晰,使用typedef將類型包裝一下,得到下面的樣式:

            typedef char* POINTER;void test_pointer(POINTER &p2){ //引用之后p2就是p1 p2=(POINTER)malloc(100); p2[0]='a';}int main(int argc, char* argv[]){ POINTER p1; test_pointer(p1); printf("%p ",p1); printf("%c ",p1[0]); return 0;}

            經過這幾步就將程序包裝清楚了,下面到主題:結構體

            二叉樹的創建

            在《數據結構 算法分析與實現》書中講到二叉樹創建時,就運用了上面了這個模型,概括下就是:有一個指針值p當前是空的,傳入函數之后,想通過動態分配讓這個p得到值,那么我們設計形參時,要么傳指向指針的指針,要么用C++模式傳引用。下面是C++傳引用的形式:

            /* @C++傳引用版本 @功能:創建二叉樹*///二叉樹結構定義typedef struct BiTNode{ char data; BiTNode *lchild,*rchild;}BiTNode,*BiTree;//創建二叉樹//使用引用時,形參的T就等于實參的T,無縫銜接void CreateBiTree(BiTree &T){ char ch; scanf("%c",&ch); if(ch== ' ') T=NULL; el{ T=(BiTree)malloc(sizeof(BiTNode)); if(!T) exit(-1); T->data=ch; CreateBiTree(T->lchild); CreateBiTree(T->rchild); }}int main(int argc, char* argv[]){ //定義二叉樹頭指針 BiTree T; CreateBiTree(T); //輸入:ab c ↘ //b后兩個空格,c后兩個空格,然后回車 return 0;}

            最后,我們再看下C語言版本的

            //結構定義typedef struct BiTNode{ char data; BiTNode *lchild,*rchild;}BiTNode,*BiTree;void CreateBiTree(BiTree *T){ char ch; scanf("%c",&ch); if(ch== ' ') *T=NULL; el{ *T=(BiTree)malloc(sizeof(BiTNode)); if(!T) exit(-1); (*T)->data=ch; CreateBiTree(&((*T)->lchild)); CreateBiTree(&((*T)->rchild)); }}int main(int argc, char* argv[]){ //定義二叉樹頭指針 BiTree T; CreateBiTree(&T); //輸入:ab c ↘ //b后兩個空格,c后兩個空格,然后回車 return 0;}

            【分析】可以看出使用C++引用更清晰一些

            結語

            通過幾個小例子說明了指針的使用方式,并寫了一個關于結構體的問題。問題不是很難,但是需要謹小慎微。

            如果文章的意思都能理解,那么在結構體的使用上基本不會有太大的問題!

            本文發布于:2023-02-28 21:04:00,感謝您對本站的認可!

            本文鏈接:http://www.newhan.cn/zhishi/a/1677722748102424.html

            版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。

            本文word下載地址:vc6.0英文版(vc6.0英文版安裝教程).doc

            本文 PDF 下載地址:vc6.0英文版(vc6.0英文版安裝教程).pdf

            標簽:英文版   教程
            相關文章
            留言與評論(共有 0 條評論)
               
            驗證碼:
            推薦文章
            排行榜
            Copyright ?2019-2022 Comsenz Inc.Powered by ? 實用文體寫作網旗下知識大全大全欄目是一個全百科類寶庫! 優秀范文|法律文書|專利查詢|
            主站蜘蛛池模板: 潮喷失禁大喷水av无码| 玩弄人妻少妇精品视频| 中国毛片网| 国产午夜亚洲精品理论片不卡| 国产亚洲精品视频中文字幕 | 中文字幕国产精品资源| 国产欧美在线观看一区| 国产精品女同一区二区| 性色av无码无在线观看| 在线观看亚洲AV日韩A∨| 亚洲男人天堂2018| 四虎精品国产AV二区| 九色综合久99久久精品| 国产亚洲精品97在线视频一| 亚洲欧美日韩综合久久久| 国产精品成人一区二区三区| 91福利国产在线观一区二区| 国产三级+在线播放| 久久国产精品无码网站| 久久一二三四区中文字幕| 久久这里都是精品一区| 国产麻豆放荡av激情演绎| 亚洲成亚洲成网| 国产乱弄免费视频观看| 国色天香成人一区二区| 18禁裸乳无遮挡啪啪无码免费| 婷婷六月天在线| 人禽交 欧美 网站| 亚洲性啪啪无码AV天堂| 无码丰满熟妇| 欧美视频免费一区二区三区| 国产最大的福利精品自拍| 国产SUV精品一区二区88L| 久久人妻av一区二区三区| 2020国产成人精品视频| 无人区码一码二码三码区| 国产一区二区在线影院| 四虎影视www在线播放 | 亚洲日本va午夜在线影院| 男人狂桶女人高潮嗷嗷| 亚洲欧美国产日韩天堂区|