【函數指針】 1.函數指針定義 函數類型 (*指針變量名)(形參列表); “函數類型”說明函數的返回類型,由於“()”的優先級高於“*”,所以指針變量名外的括號必不可少,後面的“形參列表”表示指針變量指向的函數所帶的參數列表。 例如:
在定義函數指針時請注意: 函數指針的類型和函數的返回值類型也必須是一致的。 2.函數指針的賦值 函數名和數組名一樣代表了函數代碼的首地址,因此在賦值時,直接將函數指針指向函數名就行了。 例如,
賦值時函數func不帶括號,也不帶參數,由於func代表函數的首地址,因此經過賦值以後,指針f就指向函數func(x)的代碼的首地址。 3.通過函數指針調用函數 函數指針是通過函數名及有關參數進行調用的。 與其他指針變量相類似,如果指針變量pi是指向某整型變量i的指針,則*p等於它所指的變量i;如果pf是指向某浮點型變量f的指針,則*pf就等價於它所指的變量f。同樣地,*f是指向函數func(x)的指針,則*f就代表它所指向的函數func。所以在執行了f=func;之後,(*f)和func代表同一函數。 由於函數指針指向存儲區中的某個函數,因此可以通過函數指針調用相應的函數。現在我們就討論如何用函數指針調用函數,它應執行下面三步: 首先,要說明函數指針變量。 例如:
其次,要對函數指針變量賦值。 例如:
最後,要用 (*指針變量)(參數表);調用函數。 例如:
一個函數不僅可以帶回一個整型數據的值,字符類型值和實型類型的值,還可以帶回指針類型的數據,使其指向某個地址單元。 返回指針的函數,一般定義格式爲: 類型標識符 *函數名(參數表)
其中x,y是形式參數,f是函數名,調用後返回一個指向整型數據的地址指針。f(x,y)是函數,其值是指針。 如:char *ch();表示的就是一個返回字符型指針的函數,請看下面的例題: 【例】將字符串1(str1)複製到字符串2(str2),並輸出字符串2.
函數指針是一個指向函數的指針,而指針函數只是說明他是一個返回值爲指針的函數, 函數指針可以用來指向一個函數。 |
本文引用通告地址:http://lionwq.spaces.eepw.com.cn/articles/trackback/item/18258