函式存放在記憶體的**區域內,它們同樣有位址,我們如何能獲得函式的位址呢?
如果我們有乙個int test(int a)的函式,那麼,它的位址就是函式的名字,這一點如同陣列一樣,陣列的名字就是陣列的起始位址。
定義乙個指向函式的指標用如下的形式,以上面的test()為例:
int (*fp)(int a);//這裡就定義了乙個指向函式的指標
函式指標不能絕對不能指向不同型別,或者是帶不同形參的函式,在定義函式指標的時候我們很容易犯如下的錯誤。
int *fp(int a);//這裡是錯誤的,因為按照結合性和優先順序來看就是先和()結合,然後變成了乙個返回整形指標的函式了,而不是函式指標,這一點尤其需要注意!
下面我們來看乙個具體的例子:
#include
<
iostream
>
#include
<
string
>
using
namespace
std;
inttest(
inta);
void
main
(int
argc
,char
*argv)
inttest(
inta)
typedef定義可以簡化函式指標的定義,在定義乙個的時候感覺不出來,但定義多了就知道方便了,上面的**改寫成如下的形式:
#include
<
iostream
>
#include
<
string
>
using
namespace
std;
inttest(
inta);
void
main
(int
argc
,char
*argv)
inttest(
inta)
源文件 <>
C 學習筆記 四 指標 4
類成員指標 本文主要討論 c 中類成員的指標,這部分內容少有使用,也比較難於理解。如果文中有錯誤或遺漏之處,敬請指出,謝謝!需要使用類成員指標的情況是比較少見的,所以一般沒人使用這個語言特性。下面先介紹類成員指標的使用方法,再介紹它的可能應用場合。有時,我們需要在類外的其它地方直接獲得類成員,這時我...
C語言學習筆記(四) 指標
c語言學習筆記 四 指標 include intmain p就是乙個指標,p就是取出p指向位址的值 陣列 相同型別的資料集合 include intmain 在這個程式中,p是乙個指標,a是乙個陣列,若p a 0 或者p a就是p指向陣列的第乙個元素,接下來就可以對p進行 1或 1進行偏移操作 in...
C 學習筆記 四 指標(2)轉
分類 c 學習筆記 2010 04 03 14 11 283人閱讀 函式和函式指標 最近在看 寫 的人很喜歡用 函式和函式指標。一直覺得 函式和函式指標挺神秘的,所以查了一些資料,來與大家一起來分享。什麼是 函式 簡而言之,函式就是乙個通過函式指標呼叫的函式。如果你把函式的指標 位址 作為引數傳遞給...