當前位置:學識都>好好學習>考研>

函數指針的定義是什麼

學識都 人氣:2.71W

顧名思義,函數指針就是函數的指針。它是一個指針,指向一個函數。看例子:

函數指針的定義是什麼

A),char * (*fun1)(char * p1,char * p2);

B),char * *fun2(char * p1,char * p2);

C),char * fun3(char * p1,char * p2);

數組參數等效的指針參數

數組的數組:char a[3][4] 數組的指針:char (*p)[10]

指針數組: char *a[5] 指針的指針:char **p

看看上面三個表達式分別是什麼意思?

C):這很容易,fun3 是函數名,p1,p2 是參數,其類型爲char *型,函數的`返回值爲char *類型。

B):也很簡單,與C)表達式相比,唯一不同的就是函數的返回值類型爲char**,是個二級指針。

A):fun1 是函數名嗎?回憶一下前面講解數組指針時的情形。我們說數組指針這麼定義或許更清晰:

int (*)[10] p;

再看看A)表達式與這裏何其相似!明白了吧。這裏fun1 不是什麼函數名,而是一個指針變量,它指向一個函數。這個函數有兩個指針類型的參數,函數的返回值也是一個指針。

同樣,我們把這個表達式改寫一下:char * (*)(char * p1,char * p2) fun1; 這樣子是不是好看一些呢?只可惜編譯器不這麼想

TAGS:函數指針