C語言 函式指標 函式指標陣列 函式指標陣列的指標

2021-08-25 06:05:35 字數 1858 閱讀 2325

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...