C C 函式指標

2021-09-19 15:35:31 字數 1496 閱讀 7466

指標變數可以指向任何型別的資料,也可以指向乙個函式。每個函式在記憶體中都占用一段儲存單元,這段儲存單元的首位址稱為函式的入口位址,指向這個函式入口位址的指標稱為函式指標。

1、函式指標基本用法:
int

max(

int a,

int b)

int(

*p)(

int,

int)

= max;

int x =

20, y =30;

int z =

p(x, y)

;

首先定義了乙個max函式,函式接受兩個int型別的引數並返回其中的最大值。

int (*p) (int , int) = max;

這行**中定義了乙個函式指標p,在定義函式指標時必須指明函式指標所指向函式的返回值和引數列表。**中的函式指標p所指向的函式的返回值為int型別,引數列表為兩個int型別的引數,這與max函式的返回值和引數列表一致,因此可以用函式max初始化函式指標p。

注:函式名等價於函式的入口位址

2、函式指標的定義和初始化

括號不能少

在定義時 * p 必須用括號括起來,如果去掉括號**變為

int *p (int, int) // p是函式而非指標

上面**中的p不是乙個函式指標,而是乙個函式名。**宣告了乙個函式p,函式返回值型別為int* 型別,並且包括兩個int型別的引數。

在對函式指標初始化或者賦值的過程中,一定要保證函式的引數個數和型別與函式指標的定義相匹配。

3、函式指標實現簡單的四則運算

**如下:

#include

#include

#include

intadd

(int a,

int b)

intminus

(int a,

int b)

intmulti

(int a,

int b)

intdivide

(int a,

int b)

intcalculator

(int a,

int b,

int(

*func)

(int

,int))

intmain()

4、typedef關鍵字的用法

使用typedef關鍵字對函式指標型別重定義,並在定義函式指標時使用通過typedef重定義後的型別名。

typedef

int(

*pfunc)

(int

,int);

intcalculator

(int a,

int b, pfunc func )

;

c C 指標函式

我們知道,指標式記憶體首位址,那是針對變數來說的,我也知道,程式是由變數,函式組成的。那麼函式的指標是怎麼定義的呢?我們也知道函式也是存放在記憶體的 區域,它同樣有首位址,關鍵是我們怎樣才能獲取它的位址呢?如果我們定義乙個 int test int a 的函式,那麼它的位址就是函式名字test,這一...

C C 函式指標

學好函式指標有著較為重要的意義,如windows程式設計中wndclass結構體的 lpfnwndproc 成員就是乙個函式指標,下面介紹簡單的函式指標應用。void toupper char void tolower char int round double 宣告了乙個名為pf的函式指標,該函式...

C C 函式指標

1.要指向的函式的宣告 返回型別 函式名 參數列 2.對應的函式指標的宣告,返回型別和參數列與要指向的函式宣告相同 返回型別 函式指標變數名 參數列 舉例 int func int a,int b 要指向的函式的宣告 int func ptr int a,int b 對應的函式指標的宣告 inclu...