2014年3月22日 星期六

指向函數的指標 & 傳回指標的函數

首先先分別以下兩種,1.指向函數的指標(Pointer to function)
                                    2.傳回指標的函數(Function returns a pointer)

1.指向函數的指標
宣告一個可指向某個副程式,並給其執行參數。

應該很難理解,以下由程式方式來說明。

int add(int,int);
int (*operation)(int, int);

int add(int a, int b)
{return a+b;}
main(){
   int output,x=1,y=2;
   operation = add;
   output = (*operation) (x,y);
}

上述程式中,可明確知道operation為一個指向函數的指標,可直接給定此指標要指向哪一個副程式

2.傳回指標的函數(其傳回指標位址)

int *test(int);

test為一個函數,其函數會回傳一個int指標的位址。

Example:
int *test(int);

int *test(int a){
    int b=2;
    b = b+a;
return b;
}
main(){
int *ptr;
int x=1;
ptr = test(x);
}
此程式可知,ptr = test(x);  會呼叫test()函數做完b=b+a後,會回傳一個int指標的位址給ptr。


ref:
指標的藝術 蔡明志





沒有留言:

張貼留言