函式指標的定義是什麼

才智咖 人氣:2.7W

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

函式指標的定義是什麼

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:函式指標