c語言程式在編譯後,每個函式都有乙個首位址(也就是函式第一條指令的位址),這個位址稱為函式的指標。可以定義指向函式的指標變數,使用指標變數間接呼叫函式。
先用乙個簡單的程式來說明:
#include
float
max(
float a,
float b)
float
min(
float a,
float b)
main()
執行結果:
在本程式中的詳細說明:
(1)語句float (*p)(float a, float b)定義了乙個指向函式的指標變數。函式的格式是:返回值為float型,形式引數列表是(float a, float b),p指標定義後,可以指向任何滿足該格式的函式。
(2)定義指向函式的指標變數的格式為:資料型別(*指標變數名稱)(形式引數列表);
其中資料型別是函式返回值的型別,形式引數列表是函式的形式引數列表。
(3)形式引數列表中,引數名稱可以省略。比如,float (*p)(float a, float b),可以寫為:float (*p)(float, float);
(4)需要注意的是指標變數名稱兩邊的括號不能省略。
(5)語句p=max;將max函式的首位址值賦給指標變數p,也就是使p指向函式max。c語言中,函式名稱代表函式的首位址。
#include
float
add(
float a,
float b)
float
subtract
(float a,
float b)
float
multiply
(float a,
float b)
float
divide
(float a,
float b)
float
math
(float
(*p)
(float
,float),
float a,
float b)
main()
執行結果:
C語言 指向函式的指標
1 函式型別 函式指標變數 指向函式的入口位址 乙個函式是若干語句的集合 經編譯後儲存在函式 儲存區 並占有一片連續的儲存空間 對函式指標只能用函式名賦值而無其他運算 include stdio.h 23 intmax intx inty 45 intmain 617 18int max intx ...
C語言 指向函式的指標
在c語言中,函式名代表函式的入口位址。可以定義乙個指標變數,接收函式的入口位址,讓它指向函式,這就是指向函式的指標,也稱函式指標。通過函式指標可以呼叫函式,它還可以作為函式的引數。函式指標的定義 函式指標定義的一般格式為 型別名 變數名 引數型別表 型別名指定函式返回值的型別,變數名是指向函式的指標...
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 前者是返回值是指標的函式 後者是乙個指向函式的指標。...