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

            笑看風云淡

            寵辱不驚,看庭前花開花落;去留無意,望天空云卷云舒
            posts - 96, comments - 48, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理
            一、結構體與函數參數
             結構體作函數參數可分為傳值與傳指針。
             1.傳值時結構體參數會被拷貝一份,在函數體內修改結構體參數成員的值實際上是修改調用參數的一個臨時拷貝的成員的值,這不會影響到調用參數。在這種情況下,由于涉及到結構體參數的拷貝,程序空間及時間效率都會受到影響,所以這種方法基本不用。
             例如:
             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.傳指針時直接將結構體的首地址傳遞給函數體,在函數體中通過指針引用結構體成員,可以對結構體參數成員的值造成實際影響。這種用法效率高,經常采用。
                   例如:
                   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);
            }
             
            二、結構體與函數返回值
              對于某些版本的C語言編譯器,返回值僅能為基本數據類型如int、char以及指針,因此結構體作為一種組合數據類型,不能以值的方式返回,而在有些版本的C編譯器中又可以直接返回結構體變量 ,在C++中也是可以直接返回結構體變量的。
             
                   直接返回結構體變量示例如下;
                   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;
            }
                  
            以指針方式返回結構體示例如下:
                   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;
            }
            久久免费国产精品一区二区| 国产福利电影一区二区三区久久老子无码午夜伦不 | 国产一区二区三区久久精品| 国产精品视频久久| 亚洲国产婷婷香蕉久久久久久| 日韩人妻无码一区二区三区久久99| 国产69精品久久久久9999APGF| 久久精品国产99久久无毒不卡| 中文字幕亚洲综合久久| 欧美精品乱码99久久蜜桃| 久久国产高清字幕中文| 久久国内免费视频| Xx性欧美肥妇精品久久久久久| 色妞色综合久久夜夜| 国产成人综合久久久久久| 7777精品久久久大香线蕉| 精品人妻伦九区久久AAA片69 | 婷婷久久精品国产| 久久se精品一区精品二区| 伊色综合久久之综合久久| 久久精品视频网| 久久青青草原精品国产| 欧美亚洲国产精品久久高清| 精品久久香蕉国产线看观看亚洲| 2021国产精品午夜久久| 久久亚洲2019中文字幕| 91精品日韩人妻无码久久不卡| 77777亚洲午夜久久多喷| 亚洲精品国产美女久久久| 久久天天躁夜夜躁狠狠躁2022 | 囯产极品美女高潮无套久久久| 国産精品久久久久久久| 亚洲一区中文字幕久久| 久久99精品久久久久久动态图| 精品久久久久久国产| 久久精品卫校国产小美女| 欧美黑人激情性久久| 偷偷做久久久久网站| 日本WV一本一道久久香蕉| 中文字幕精品久久久久人妻| 久久精品国产亚洲Aⅴ蜜臀色欲|