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

一、指針函數
    
當一個函數聲明其返回值為一個指針時,實際上就是返回一個地址給調用函數,以用于需要指針或地址的表達式中。
    
格式:
         
類型說明符 * 函數名(參數)
    
當然了,由于返回的是一個地址,所以類型說明符一般都是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 艾凡赫 閱讀(4175) 評論(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>
            欧美日韩国产美女| 香蕉久久夜色精品| 欧美一区二区在线播放| 一区二区欧美精品| 亚洲一区日本| 欧美中在线观看| 久久夜色精品| 亚洲第一精品福利| 欧美黄色片免费观看| 欧美国产激情| 一区二区免费在线观看| 亚欧成人在线| 欧美成人激情在线| 欧美午夜精品久久久久久人妖 | 国产一二精品视频| 在线观看日韩av电影| 日韩视频在线观看免费| 亚洲免费在线视频| 久久一本综合频道| 亚洲国产欧美日韩| 午夜精品短视频| 欧美成人免费大片| 国产精品亚洲综合| 在线成人www免费观看视频| 99精品国产福利在线观看免费| 亚洲欧美日韩在线高清直播| 久久亚洲国产成人| 中文欧美在线视频| 免费久久99精品国产自在现线| 国产精品久久999| 美女精品国产| 美女被久久久| 亚洲国产91色在线| 午夜精品国产精品大乳美女| 欧美电影电视剧在线观看| 国产精品日日摸夜夜摸av| 亚洲国产精品va在线看黑人动漫 | 亚洲一区3d动漫同人无遮挡| 久久综合久久综合久久| 国产欧美精品在线播放| 99视频精品免费观看| 久久久青草婷婷精品综合日韩| 日韩午夜av电影| 欧美jizz19性欧美| 一区二区视频免费在线观看 | 国产精品区二区三区日本| 亚洲国产免费看| 久久综合导航| 久久精品亚洲乱码伦伦中文 | 欧美涩涩网站| 亚洲精品欧美日韩| 欧美激情女人20p| 久久久午夜电影| 国产一区二区高清视频| 性欧美激情精品| aa成人免费视频| 欧美日韩国产在线看| 亚洲精品在线一区二区| 亚洲第一二三四五区| 美乳少妇欧美精品| 亚洲电影免费观看高清| 免费在线播放第一区高清av| 欧美一区二区在线免费播放| 国产日韩在线看片| 久久精品亚洲精品国产欧美kt∨| 亚洲资源在线观看| 国产午夜精品久久久久久免费视| 欧美一激情一区二区三区| 亚洲欧美视频在线| 韩日精品中文字幕| 欧美电影免费观看网站| 美日韩精品视频| 亚洲最新在线| 亚洲影院色无极综合| 国产欧美日韩免费| 六月婷婷久久| 欧美极品在线视频| 亚洲欧美日韩成人| 亚洲在线观看免费视频| 国外视频精品毛片| 亚洲风情亚aⅴ在线发布| 欧美剧在线观看| 亚洲影院免费观看| 久久精品国产清高在天天线| 欧美成人一区二免费视频软件| 一区二区在线不卡| 久久蜜桃香蕉精品一区二区三区| 久久精品国产亚洲高清剧情介绍| 伊人精品成人久久综合软件| 欧美mv日韩mv国产网站app| 模特精品裸拍一区| 亚洲一区视频在线观看视频| 欧美一区二区免费| 亚洲乱码国产乱码精品精可以看| 一区二区三区|亚洲午夜| 韩国福利一区| 亚洲精品国产系列| 国产婷婷色一区二区三区| 麻豆成人综合网| 欧美视频一区| 奶水喷射视频一区| 国产精品久久久一区二区| 欧美mv日韩mv国产网站| 国产精品一区二区视频| 亚洲国产成人久久综合一区| 国产欧美日韩亚洲精品| 亚洲精品资源| 在线欧美电影| 亚洲性视频网址| 亚洲精品中文字| 久久久久久婷| 欧美亚洲视频| 欧美体内谢she精2性欧美| 欧美高清日韩| 国产一在线精品一区在线观看| 91久久久亚洲精品| 亚洲第一精品久久忘忧草社区| 亚洲在线一区| 在线亚洲一区| 欧美第一黄网免费网站| 欧美chengren| 国内久久精品| 欧美一区永久视频免费观看| 亚洲欧美国产一区二区三区| 欧美女人交a| 亚洲全部视频| 亚洲美女中文字幕| 欧美国产日韩xxxxx| 欧美激情精品| 亚洲欧洲综合另类在线| 久久久久久久激情视频| 久久嫩草精品久久久精品一| 国产欧美日韩不卡| 午夜精品久久久99热福利| 欧美日本在线| 一区二区三区国产精品| 在线性视频日韩欧美| 欧美日韩成人在线视频| 亚洲精品日韩激情在线电影| 亚洲国产视频直播| 免费国产自线拍一欧美视频| 欧美不卡视频一区| 91久久久久久久久久久久久| 另类国产ts人妖高潮视频| 免费欧美网站| 亚洲激情偷拍| 欧美日本一区二区高清播放视频| 亚洲精品乱码久久久久| 亚洲午夜精品一区二区三区他趣| 欧美性猛交xxxx乱大交退制版| 亚洲精选视频免费看| 欧美激情视频在线播放| 亚洲欧洲一二三| 亚洲午夜一区二区三区| 国产欧美高清| 久久免费偷拍视频| 亚洲欧洲日本在线| 亚洲男同1069视频| 国产色视频一区| 老司机午夜精品| 一区二区欧美日韩| 欧美一区国产在线| 亚洲韩国精品一区| 欧美体内she精视频| 久久成人亚洲| 亚洲精品久久久久久久久久久久| 亚洲综合精品四区| 在线观看欧美一区| 国产精品二区在线| 久久在线视频在线| 中文国产一区| 亚洲成色777777在线观看影院| 中文一区在线| 在线观看日韩av| 国产精品羞羞答答| 欧美成人资源| 午夜欧美大尺度福利影院在线看| 欧美大片在线观看一区二区| 亚洲在线观看| 亚洲国产综合在线看不卡| 国产精品成人免费精品自在线观看| 欧美在线视频免费| 一个人看的www久久| 久久亚洲私人国产精品va| 亚洲视频一起| 亚洲日本电影| 狠狠色综合一区二区| 国产精品久久久久7777婷婷| 麻豆乱码国产一区二区三区| 亚洲免费小视频| 一本色道久久88亚洲综合88| 欧美岛国激情| 免费美女久久99| 久久久不卡网国产精品一区| 一区二区三区久久精品| 亚洲黄色影片| 曰韩精品一区二区| 国产一区二区三区精品久久久| 国产精品hd| 欧美日韩国产在线观看|