1、指針函數:是指函數的返回值類型是一個指針類型,本質是一個函數,如 int *function(void);這裡可以認為是int* function(void);返回值是int*,是一個指針。
2、函數指針:本質是一個指針,但是這個指針指向一個函數,這個指針就叫函數指針,如int (*function)(void)。
從這裡就可以看出來,指針函數、函數指針兩個名詞就看後面兩字就可以區別了,是函數還是指針。
另外,函數指針有兩個用途:調用函數和做函數的參數。
[cpp]
int func(int x); //聲明一個函數
int (*fp)(int x); //定義一個函數指針
fp = func; //將func函數的首地址賦值給指針fp
int func(int x); //聲明一個函數
int (*fp)(int x); //定義一個函數指針
fp = func; //將func函數的首地址賦值給指針fp
3、回調函數:就是一個通過函數指針調用的函數。如果你把函數的指針(地址)作為參數傳遞給另一個函數,當這個指針被用為調用它所指向的函數時,我們就說這是回調函數。