函式指標的用法
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句基本說明了函式指標的用法 函式指標是指向函式的指標,確切的說,是指向特定型別函式的指標 函式與函...