首先先分別以下兩種,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:
指標的藝術 蔡明志
沒有留言:
張貼留言