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

一、指針函數
    
當一個函數聲明其返回值為一個指針時,實際上就是返回一個地址給調用函數,以用于需要指針或地址的表達式中。
    
格式:
         
類型說明符 * 函數名(參數)
    
當然了,由于返回的是一個地址,所以類型說明符一般都是int
    
例如:int *GetDate();
          int * aaa(int,int);
    
函數返回的是一個地址值,經常使用在返回數組的某一元素地址上。

        int * GetDate(int wk,int dy);

        main()
        {
            int wk,dy;
            do
            {
                printf("Enter week(1-5)day(1-7)\n");
                scanf("%d%d",&wk,&dy);
            }
            while(wk<1||wk>5||dy<1||dy>7);
            printf("%d\n",*GetDate(wk,dy));
        }

        int * GetDate(int wk,int dy)
        {
            static int calendar[5][7]=
            {
               {1,2,3,4,5,6,7},
               {8,9,10,11,12,13,14},
               {15,16,17,18,19,20,21},
               {22,23,24,25,26,27,28},
               {29,30,31,-1}
            };
            return &calendar[wk-1][dy-1];
        }
        
程序應該是很好理解的,子函數返回的是數組某元素的地址。輸出的是這個地址里的值。

二、函數指針
    
指向函數的指針包含了函數的地址,可以通過它來調用函數。聲明格式如下:
        
類型說明符 (*函數名)(參數)
    
其實這里不能稱為函數名,應該叫做指針的變量名。這個特殊的指針指向一個返回整型值的函數。指針的聲明筆削和它指向函數的聲明保持一致。
        
指針名和指針運算符外面的括號改變了默認的運算符優先級。如果沒有圓括號,就變成了一個返回整型指針的函數的原型聲明。
    
例如:
        void (*fptr)();
    
把函數的地址賦值給函數指針,可以采用下面兩種形式:
        fptr=&Function;
        fptr=Function;
    
取地址運算符&不是必需的,因為單單一個函數標識符就標號表示了它的地址,如果是函數調用,還必須包含一個圓括號括起來的參數表。
    
可以采用如下兩種方式來通過指針調用函數:
        x=(*fptr)();
        x=fptr();
    
第二種格式看上去和函數調用無異。但是有些程序員傾向于使用第一種格式,因為它明確指出是通過指針而非函數名來調用函數的。下面舉一個例子:

        void (*funcp)();
        void FileFunc(),EditFunc();

        main()
        {
            funcp=FileFunc;
            (*funcp)();
            funcp=EditFunc;
            (*funcp)();
        }

        void FileFunc()
        {
            printf("FileFunc\n");
        }

        void EditFunc()
        {
            printf("EditFunc\n");
        }

        
程序輸出為:
            FileFunc
            EditFunc

三、指針的指針
    
指針的指針看上去有些令人費解。它們的聲明有兩個星號。例如:
        char ** cp;
    
如果有三個星號,那就是指針的指針的指針,四個星號就是指針的指針的指針的指針,依次類推。當你熟悉了簡單的例子以后,就可以應付復雜的情況了。當然,實際程序中,一般也只用到二級指針,三個星號不常見,更別說四個星號了。
    
指針的指針需要用到指針的地址。
        char c='A';
        char *p=&c;
        char **cp=&p;
    
通過指針的指針,不僅可以訪問它指向的指針,還可以訪問它指向的指針所指向的數據。下面就是幾個這樣的例子:
        char *p1=*cp;
        char c1=**cp;
    
你可能想知道這樣的結構有什么用。利用指針的指針可以允許被調用函數修改局部指針變量和處理指針數組。

        void FindCredit(int **);

        main()
        {
            int vals[]={7,6,5,-4,3,2,1,0};
            int *fp=vals;
            FindCredit(&fp);
            printf("%d\n",*fp);
        }

        void FindCredit(int ** fpp)
        {
            while(**fpp!=0)
            if(**fpp<0) break;
            else (*fpp)++;
        }

    
首先用一個數組的地址初始化指針fp,然后把該指針的地址作為實參傳遞給函數FindCredit()。FindCredit()函數通過表達式**fpp間接地得到數組中的數據。為遍歷數組以找到一個負值,FindCredit()函數進行自增運算的對象是調用者的指向數組的指針,而不是它自己的指向調用者指針的指針。語句(*fpp)++就是對形參指針指向的指針進行自增運算的。但是因為*運算符高于++運算符,所以圓括號在這里是必須的,如果沒有圓括號,那么++運算符將作用于二重指針fpp上。

四、指向指針數組的指針
    
指針的指針另一用法舊處理指針數組。有些程序員喜歡用指針數組來代替多維數組,一個常見的用法就是處理字符串。

        char *Names[]=
        {
             "Bill",
             "Sam",
             "Jim",
             "Paul",
             "Charles",
             0
        };

        main()
        {
            char **nm=Names;
            while(*nm!=0) printf("%s\n",*nm++);
        }

    
先用字符型指針數組Names的地址來初始化指針nm。每次printf()的調用都首先傳遞指針nm指向的字符型指針,然后對nm進行自增運算使其指向數組的下一個元素(還是指針)。注意完成上述認為的語法為*nm++,它首先取得指針指向的內容,然后使指針自增。
    
注意數組中的最后一個元素被初始化為0while循環以次來判斷是否到了數組末尾。具有零值的指針常常被用做循環數組的終止符。程序員稱零值指針為空指針(NULL)。采用空指針作為終止符,在樹種增刪元素時,就不必改動遍歷數組的代碼,因為此時數組仍然以空指針作為結束。
Posted on 2005-11-03 11:26 艾凡赫 閱讀(4184) 評論(0)  編輯 收藏 引用 所屬分類: 數據類型
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久国产日本精品| 欧美aa在线视频| 国产精品一区二区久久| 亚洲影院在线观看| 亚洲一区二区三区四区五区午夜| 国产精品第一区| 午夜久久久久久| 欧美在线www| 樱桃成人精品视频在线播放| 欧美成人免费在线| 欧美另类高清视频在线| 亚洲先锋成人| 久久国产精品久久w女人spa| 尤物九九久久国产精品的特点 | 韩日欧美一区二区| 快播亚洲色图| 欧美大片第1页| 亚洲男人av电影| 午夜久久电影网| 亚洲人久久久| 亚洲性色视频| 亚洲经典一区| 亚洲一线二线三线久久久| 黄色成人在线网址| 日韩性生活视频| 狠狠色丁香婷婷综合| 亚洲人成在线播放| 国产伦精品一区| 亚洲国产三级网| 国产午夜精品理论片a级大结局| 亚洲大胆人体在线| 国产精品入口麻豆原神| 欧美国产日韩一区二区| 国产精品麻豆va在线播放| 欧美大胆成人| 国模私拍一区二区三区| 亚洲精品小视频在线观看| 国内综合精品午夜久久资源| 亚洲黄色在线观看| 在线欧美日韩精品| 性色av一区二区三区在线观看| 亚洲伦理久久| 久久久亚洲欧洲日产国码αv | 中文国产亚洲喷潮| 久久国产精品久久久久久| 亚洲欧美激情精品一区二区| 欧美高清不卡| 亚洲大片免费看| 国产一区二区无遮挡| 一区二区三区精品国产| 日韩午夜精品| 欧美成人国产一区二区| 乱码第一页成人| 国产一区二区黄| 亚洲综合大片69999| 亚洲一级二级在线| 欧美剧在线免费观看网站| 欧美va亚洲va香蕉在线| 国内精品免费在线观看| 亚洲欧美久久久久一区二区三区| 亚洲私人影吧| 欧美视频在线观看| 亚洲国产日韩欧美在线图片| 亚洲国产成人精品女人久久久| 欧美一区二区视频97| 性亚洲最疯狂xxxx高清| 欧美日在线观看| 亚洲免费观看| 亚洲伊人伊色伊影伊综合网| 欧美日韩午夜精品| 一区二区三区不卡视频在线观看| 99精品99久久久久久宅男| 欧美精品三级日韩久久| 日韩午夜中文字幕| 亚洲欧美国产另类| 国产免费观看久久黄| 午夜久久久久久| 久久夜色撩人精品| 亚洲国产三级| 欧美美女福利视频| 亚洲视频一区在线| 久久成人免费电影| 红桃av永久久久| 欧美成人一区二区三区片免费| 亚洲精华国产欧美| 午夜精品网站| 一区二区亚洲| 欧美国产激情二区三区| 日韩视频一区二区三区在线播放免费观看 | 狠狠综合久久av一区二区小说| 欧美在线视频二区| 欧美成人精品一区二区| 亚洲久久成人| 国产精品男gay被猛男狂揉视频| 西瓜成人精品人成网站| 欧美va天堂在线| 亚洲一区欧美二区| 一区二区在线视频播放| 欧美另类女人| 欧美一级淫片aaaaaaa视频| 亚洲大片免费看| 欧美一级精品大片| 亚洲人成亚洲人成在线观看| 国产精品久久久久免费a∨大胸 | 一本色道久久综合亚洲精品不| 久久av一区二区| 亚洲精品欧美日韩| 国产伦精品一区二区三区免费迷| 久久精品视频网| 一本色道久久88亚洲综合88| 久久久久久久综合狠狠综合| 亚洲精品久久久久久下一站 | 亚洲三级电影在线观看| 国产精品永久免费在线| 老司机午夜精品视频| 亚洲综合国产精品| 亚洲人精品午夜| 久久亚洲图片| 欧美在线亚洲在线| 亚洲一区二区在线免费观看视频| 在线日韩av片| 国产婷婷色一区二区三区在线 | 欧美日韩精品高清| 久久久久久午夜| 午夜精彩视频在线观看不卡 | 久久成人综合网| 亚洲视频欧洲视频| 亚洲精品欧美| 91久久中文字幕| 在线播放不卡| 激情久久五月| 国产一级一区二区| 国产精品一区二区在线观看| 欧美三级在线视频| 欧美韩日精品| 免费永久网站黄欧美| 久久欧美肥婆一二区| 久久国产精品久久久久久电车| 亚洲综合社区| 亚洲一区久久久| 亚洲在线观看免费| 亚洲一区在线免费| 亚洲综合久久久久| 亚洲一区一卡| 亚洲欧美在线网| 欧美一区二区在线| 欧美一区在线视频| 久久精品在线观看| 久久久久久网| 蜜桃伊人久久| 欧美日本久久| 欧美吻胸吃奶大尺度电影| 欧美日韩喷水| 国产精品网站视频| 黄色一区二区三区| 在线精品高清中文字幕| 亚洲欧洲精品一区二区三区不卡| 最新国产成人av网站网址麻豆 | 国产精品久久久久久模特| 国产精品美女久久久| 国产日韩欧美一区在线| 精品动漫3d一区二区三区免费| 亚洲国产片色| 亚洲视频自拍偷拍| 久久精品电影| 欧美激情精品| 亚洲图片你懂的| 久久久99久久精品女同性| 免费成人网www| 欧美婷婷六月丁香综合色| 国产午夜精品一区二区三区视频| 精品不卡视频| 夜夜嗨av一区二区三区四区 | 亚洲激情欧美| 亚洲视频一二| 麻豆av福利av久久av| 亚洲国产精品一区二区久| 亚洲视频中文| 久久美女性网| 国产精品黄视频| 在线免费精品视频| 亚洲一区激情| 免费av成人在线| 夜夜嗨av一区二区三区网页| 欧美一区观看| 欧美理论电影在线播放| 国模一区二区三区| 亚洲一区二区三区影院| 欧美mv日韩mv国产网站| 亚洲一二三区在线观看| 欧美不卡视频一区| 国产日韩欧美三级| 一区二区三区欧美亚洲| 久久亚洲一区二区| 亚洲视频成人| 欧美福利在线观看| 一色屋精品视频在线看| 欧美一级一区| 99亚洲伊人久久精品影院红桃| 蜜臀久久99精品久久久久久9 |