• <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>

            笑看風(fēng)云淡

            寵辱不驚,看庭前花開花落;去留無意,望天空云卷云舒
            posts - 96, comments - 48, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理
            一、結(jié)構(gòu)體與函數(shù)參數(shù)
             結(jié)構(gòu)體作函數(shù)參數(shù)可分為傳值與傳指針。
             1.傳值時結(jié)構(gòu)體參數(shù)會被拷貝一份,在函數(shù)體內(nèi)修改結(jié)構(gòu)體參數(shù)成員的值實際上是修改調(diào)用參數(shù)的一個臨時拷貝的成員的值,這不會影響到調(diào)用參數(shù)。在這種情況下,由于涉及到結(jié)構(gòu)體參數(shù)的拷貝,程序空間及時間效率都會受到影響,所以這種方法基本不用。
             例如:
             typedef struct tagSTUDENT{
                 char name[20];
                 int age;
            }STUDENT;
             
            void fun(STUDENT stu)
            {
             printf(stu.name=%s,stu.age=%d\n,stu.name,stu.age);
            }
             
             
             
             2.傳指針時直接將結(jié)構(gòu)體的首地址傳遞給函數(shù)體,在函數(shù)體中通過指針引用結(jié)構(gòu)體成員,可以對結(jié)構(gòu)體參數(shù)成員的值造成實際影響。這種用法效率高,經(jīng)常采用。
                   例如:
                   typedef struct tagSTUDENT{
            char name[20];
            int age;
            }STUDENT;
             
            void fun(STUDENT* pStu)
            {
            printf(pStu->name=%s,pStu->age=%d\n,pStu->name,pStu->age);
            }
             
            二、結(jié)構(gòu)體與函數(shù)返回值
              對于某些版本的C語言編譯器,返回值僅能為基本數(shù)據(jù)類型如int、char以及指針,因此結(jié)構(gòu)體作為一種組合數(shù)據(jù)類型,不能以值的方式返回,而在有些版本的C編譯器中又可以直接返回結(jié)構(gòu)體變量 ,在C++中也是可以直接返回結(jié)構(gòu)體變量的。
             
                   直接返回結(jié)構(gòu)體變量示例如下;
                   typedef struct tagSTUDENT{
            char name[20];
            int age;
            }STUDENT;
             
            STUDENT fun();
            int _tmain(int argc, _TCHAR* argv[])
            {
                 STUDENT p=fun();
                 printf("p.name=%s",p.name);
                 return 0;
            }
             
            STUDENT fun()
            {
                 STUDENT stu;
                 stu.age=18;
                 strcpy(stu.name,"xiaoming");
                 return stu;
            }
                  
            以指針方式返回結(jié)構(gòu)體示例如下:
                   typedef struct tagSTUDENT{
            char name[20];
            int age;
            }STUDENT;
             
             
            STUDENT* fun()
            {
                 STUDENT* p=malloc(sizeof(STUDENT));
                 p->age=18;
                 strcpy(p->name,"xiaoming");
                 return p;
            }

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


            欧美熟妇另类久久久久久不卡| 漂亮人妻被黑人久久精品| 少妇久久久久久被弄高潮| 亚洲&#228;v永久无码精品天堂久久| 国内精品久久人妻互换| 麻豆AV一区二区三区久久| 久久综合亚洲鲁鲁五月天| 久久精品国产精品亚洲下载| 国产成人无码精品久久久免费| 久久久综合九色合综国产| 久久亚洲国产欧洲精品一 | 日韩精品国产自在久久现线拍| 婷婷五月深深久久精品| 99久久久国产精品免费无卡顿| 久久久精品人妻一区二区三区蜜桃| 欧美一区二区三区久久综合| 久久99免费视频| 久久夜色撩人精品国产| 亚洲午夜福利精品久久| 亚洲国产精品无码久久久蜜芽| 国产精品免费福利久久| 老司机国内精品久久久久| 久久精品中文字幕第23页| 亚洲精品乱码久久久久久蜜桃| 久久妇女高潮几次MBA| 国产成年无码久久久久毛片| 国产精品狼人久久久久影院 | 久久亚洲精品成人AV| 99久久精品国产高清一区二区| 狠狠精品干练久久久无码中文字幕| 欧美大战日韩91综合一区婷婷久久青草| 伊人久久大香线蕉综合热线| 2020久久精品国产免费| 久久九色综合九色99伊人| 亚洲中文精品久久久久久不卡| 久久电影网一区| 99精品国产99久久久久久97| 久久国产亚洲精品麻豆| 精品国产日韩久久亚洲| 欧美亚洲另类久久综合| 久久精品中文字幕一区|