C語言 指向函式的指標

2021-09-26 07:10:30 字數 1516 閱讀 1105

在c語言中,函式名代表函式的入口位址。可以定義乙個指標變數,接收函式的入口位址,讓它指向函式,這就是指向函式的指標,也稱函式指標。通過函式指標可以呼叫函式,它還可以作為函式的引數。

函式指標的定義

函式指標定義的一般格式為:

型別名  (*變數名) (引數型別表);
型別名指定函式返回值的型別,變數名是指向函式的指標變數的名稱。例如:

int

(*funptr)

(int

,int

);

定義了乙個函式指標funptr,它可以指向有兩個整型引數且返回值型別為int的函式。

通過函式指標呼叫函式

在使用函式指標之前,要先給它賦值。賦值時,將乙個函式名賦給函式指標,但該函式必須已經定義或宣告,且函式返回值的型別和函式指標要一致。

假設函式fun(x, y)已經定義,它有兩個整型引數且返回乙個整型變數,則funptr=fun;將函式fun()的入口位址賦給funptrfunptr指向fun()

呼叫該函式除了直接使用函式名呼叫(例如使用fun(3,5)),還能通過函式指標呼叫。通過函式指標呼叫函式的一般形式為:

(*函式指標名) (參數列);
例如上述舉例可以寫成(*funptr) (3, 5);函式指標作為函式的引數

編寫函式calc(f, a, b),用梯形公式求函式

[a, b]上的數值積分。

公式:calc()是乙個通用函式,形參包括函式指標和積分區間上下限引數。

double

calc

(double

(*funp)

(double),

double a,

double b)

;

程式實現:

#include

#include

double

calc

(double

(*funp)

(double),

double a,

double b)

;doublef1(

double x),f2

(double x)

;int

main()

double

calc

(double

(*funp)

(double),

double a,

double b)

doublef1(

double x)

doublef2(

double x)

C語言 指向函式的指標

1 函式型別 函式指標變數 指向函式的入口位址 乙個函式是若干語句的集合 經編譯後儲存在函式 儲存區 並占有一片連續的儲存空間 對函式指標只能用函式名賦值而無其他運算 include stdio.h 23 intmax intx inty 45 intmain 617 18int max intx ...

C語言指向函式的指標

定義形式 型別 指標變數名 引數列表 例如 int p int i,int j 在這裡 int是函式的返回型別,p是指向函式的指標,int i,int j 是函式的引數 注意 int f int i,int j int p int i,int j 前者是返回值是指標的函式 後者是乙個指向函式的指標。...

C語言 指向函式的指標

c語言程式在編譯後,每個函式都有乙個首位址 也就是函式第一條指令的位址 這個位址稱為函式的指標。可以定義指向函式的指標變數,使用指標變數間接呼叫函式。先用乙個簡單的程式來說明 include float max float a,float b float min float a,float b ma...