函式指標的用法

2021-04-19 20:02:30 字數 1189 閱讀 2295

函式指標的用法

by zieckey

在程式執行中,函式**是程式的演算法指令部分,它們和陣列一樣也占用儲存空間,都有相應的位址。可以使用指標變數指向陣列的首位址來呼叫陣列資料,也可以使用指標變數指向函式**的首位址來呼叫函式,指向函式**首位址的指標變數就稱為函式指標。

1.函式指標定義

函式型別 (*指標變數名)(形參列表);

「函式型別」說明函式的返回型別,由於「()」的優先順序高於「*」,所以指標變數名外的括號必不可少,後面的「形參列表」表示指標變數指向的函式所帶的引數列表。

例如:

int (*f)(int x);

double (*ptr)(double x);

在定義函式指標時請注意:

函式指標和它指向的函式的引數個數和型別都應該是—致的;

函式指標的型別和函式的返回值型別也必須是一致的。

2.函式指標的賦值

函式名和陣列名一樣代表了函式**的首位址,因此在賦值時,直接將函式指標指向函式名就行了。

例如,

int func(int x);   /* 宣告乙個函式 */

int (*f) (int x);    /* 宣告乙個函式指標 */

f=&func;            /* 將func函式的首位址賦給指標f */   

f=func;

賦值時函式func不帶括號,也不帶引數,由於func代表函式的首位址,因此經過賦值以後,指標f就指向函式func(x)的**的首位址。

第二種格式看上去和函式呼叫無異。但是有些程式設計師傾向於使用第一種格式,因為它明確指出是通過指標而非函式名來呼叫函式的。

3、下面給出乙個示例程式:

#include

void

(*fp)()

;//函式指標: 指向函式的指標包含了函式的位址,可以通過它來呼叫函式

void

(*fp_para)

(char*)

;//帶引數的函式指標

void func_para(

char

*s);

void func();

int main(

void

)void func_para(

char

*s)void func(

)

函式指標的用法

定義函式指標兩種方法 1.typedef int myfun int,int 2.int myfun int,int 上面的例子定義myfun 是乙個函式指標,函式型別是帶兩個int 引數,返回乙個int 在分析這種形式的定義的時候可以用下面的方法 先去掉typedef 和別名,剩下的就是原變數的型...

函式指標的用法

函式指標是指向函式的指標變數,即本質是乙個指標變數。區別於指標函式,指標函式是指帶指標的函式,即本質是乙個函式,函式返回型別是某一型別的指標。函式指標和指標函式是大部分在學c語言時比較頭疼的乙個概念,今天我給大家簡單分析下 1.指標函式的使用與宣告如下 型別識別符號 函式名 參數列 int f x,...

C C 函式指標,指標函式的用法,用處

先看函式指標 int func2 int x 宣告乙個函式 int q2 int x 宣告乙個函式指標 q2 func2 將func函式的首位址賦給指標f int c q2 3 3可以為任意實參 上面4句基本說明了函式指標的用法 函式指標是指向函式的指標,確切的說,是指向特定型別函式的指標 函式與函...