• <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://m.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 ? 實用文體寫作網旗下知識大全大全欄目是一個全百科類寶庫! 優秀范文|法律文書|專利查詢|
            主站蜘蛛池模板: 亚洲aⅴ无码专区在线观看春色| 日韩av一区二区三区精品| 国产午夜福利视频一区二区| 日韩av无码精品人妻系列| 少妇高潮喷水惨叫久久久久电影| 国偷自产一区二区三区在线视频| 男人狂桶女人高潮嗷嗷| 欧美怡春院一区二区三区| 蜜桃av多人一区二区三区| 久久久久无码国产精品不卡| 青青草综合在线观看视频| 少妇愉情理伦片| 久久男人av资源站| 人妻av无码专区久久| 国产精品小粉嫩在线观看| 久久久久99人妻一区二区三区| 久久精品午夜视频| 欧美激欧美啪啪片| 日韩精品一区二区三区久| 蜜臀久久精品亚洲一区| 永久免费AV无码国产网站| 狠狠色丁香婷婷综合尤物| 宝贝几天没c你了好爽菜老板| 久久这里只有精品免费首页| 蜜臀精品一区二区三区四区| 中文字幕乱码一区二区免费| 伊人狠狠色j香婷婷综合| 日韩精品 在线 国产 丝袜| 国产精品视频网国产| 久久精品亚洲精品国产色婷| 久热色精品在线观看视频| 另类专区一区二区三区| 边添小泬边狠狠躁视频| 久久久亚洲av成人网站| 久久人人爽爽人人爽人人片av | 亚洲综合精品成人| 亚洲一区二区日韩综合久久| 国产精品爆乳在线播放| 欧美性受xxxx喷水性欧洲| 国产精品入口麻豆| 亚洲精品国模一区二区|