函數指標和指標函數,編程每天都看見,卻每天都不當回事,直到有人問什麼是指標函數和函數指標,自己才知道自己犯暈了。於是趕快看資料溫習溫習。。。
1.指標函數是指函數的傳回值類型是一個指標類型,即本質是一個函數。
2.函數指標是指向函數的指標變數。
*指標函數格式如下:
傳回型別 *函數名稱(形式參數表)
{ 函數體 }
int *func(int a,int b)
{
}
簡單例子如下:
[cpp] view plaincopyprint?#include <stdio.h> int *func(int *a,int *b) { int *p; int c; c=*a+*b; p=&c; return p; } int main() { int a=3,b=7; int *p; p=func(&a,&b); printf("%d\n",*p); return 0; }
*函數指標格式如下:
函數類型 (標誌符 指標變數名) (形參列表);
int (*func)(int a,int b);
簡單例子如下:
[cpp] view plaincopyprint?#include <stdio.h> int add(int *a,int *b) { int c; c=*a+*b; return c; } int main() { int a=3,b=7; int *p; int (*func)(int *a,int *b); func=add; printf("%d\n",func(&a,&b)); return 0; }
**函數指標聲明為指標,它與變數指標不同之處是,它不是指向變數,而是指向函數。
**函數指標本身首先應是指標變數,只不過該指標變數指向函數。
-------(後面我直接簡單的把函數指標理解為它是指向一個函數的,所以你可以把一個函數地址【或說函數進入點也行】賦給它;
指標函數,你可以直接理解為它是一個會返回指標的函數,然後你可以把這個指標賦給你定義的一個相同類型的指標。)