1.定義理解
函式的位址可以通過取位址函式名拿到,也可以通過函式名直接拿到。
2.函式指標
(1)定義乙個函式test
void
test
(char
*str)
intmain()
(2)函式指標的使用
//呼叫函式test,傳參:zhangsan
(*p)
("zhangshan"
);
這裡的*沒有起作用,它是讓我們知道這是乙個指標然後解引用了一下。所以可以簡化一下:(下面的寫法也正確)
p
("zhangsan"
);
(3)一些函式指標舉例
//add函式
int(
*p)(
int x,
int y)
=add;
//呼叫p(
2,3)
;//sub函式
int(
*p)(
int x,
int y)
=sub;
//呼叫p(
2,3)
;
這些函式指標型別都相同,因此我們考慮能不能把這些函式指標放到乙個陣列中呢?接下來我們引入乙個函式指標陣列。
1.定義理解
2.函式指標陣列
①定義乙個函式指標陣列
int
(*p[4]
)(int,
int)
=;
該函式指標陣列包含四個函式指標,分別指向add函式,sub函式,mul函式,div函式,每乙個函式的引數都是兩個int型的引數。
②呼叫函式
//呼叫add函式p[1
](8,
4);--
->輸出12
//呼叫sub函式p[2
](8,
4);--
->輸出4
//呼叫mul函式p[3
](8,
4);--
->輸出32
//呼叫div函式p[4
](8,
4);--
->輸出2
1.定義理解
2.函式指標陣列的指標
那麼函式指標陣列的指標該如何書寫呢?
我們還是以上面的函式指標陣列p為例。
int(*
(*pp)[4
])(int x,
int y)
=&p;
//這裡的pp就是存放了函式指標陣列p的指標
小總結
到這裡為止大家可能對這些比較繞,我們來總結一下。
①函式指標
int
(*p)
(int
,int
);
(這是乙個指標,指向乙個函式)
②函式指標陣列
int
(*p[4]
)(int,
int)
;
(這是乙個陣列,陣列有四個元素,每個元素是乙個指向函式的指標)
③指向函式指標陣列的指標
int(*
(*p)[4
])(int
,int
);
(這是乙個指標,指向乙個陣列,這個陣列有四個元素,每個元素是乙個指向函式的指標) C語言 函式,函式指標 指標陣列,陣列指標。
include char fun1 char p,char a char fun2 char p,char a char fun3 char p,char a int main char pfun char p,char a 第6行使函式指標指向我們自定義的fun1函式。第7行是通過函式指標去呼叫我...
C語言 函式指標 函式指標陣列 轉移表
1.什麼是函式指標?函式指標也是指標,不過它指向的是函式的首位址。體會下面一段 可以看到兩條語句執行的結果是一模一樣的。再觀察下面這段 可見它指向的就是函式的首位址 2.怎樣定義函式指標變數 例 int p 函式引數 int 函式的返回值是int型的 void p void 函式的返回值型別是voi...
函式指標,函式指標陣列,函式指標陣列的指標
函式指標的使用 先看如下例子 include include char fun char p1,char p2 else int main 我們使用指標的時候,需要通過鑰匙 來取其指向的記憶體裡面的值,函式指標使 用也如此。通過用 pf 取出存在這個位址上的函式,然後呼叫它。這裡需要注意到是,在 v...