C 函式指標的宣告與使用

2021-10-09 05:13:11 字數 2289 閱讀 9452

一 函式指標是什麼

1.函式指標是指標

2.函式指標該如何宣告?

我們可以和int型別的指標的宣告進行比對一下:

宣告乙個int型指標:

int *p ;
宣告乙個函式型(假如是乙個有兩個int型別的引數以及乙個 int型別的返回值)的指標:

int (*pfunc)(int, int);
我們把指標名稱提出來看一下,

整形指標

函式指標

int *

int (*)(int, int)

二者不同的只是 函式指標多了乙個引數列表

3.函式指標的使用

既然是指標,那就要指向乙個位址,變數有位址, 函式同樣有位址。

我們再來比對一下;

1.int型指標的使用:

#includeint main()

int add(int a, int b)

由此可以看出, 函式指標和指標的使用是有異曲同工之妙的,無非是多了乙個引數列表。

二 typedef函式指標的用法

1.typedef介紹

首先來看看typedef和define的比較:

2.typedef 的用法

1.typedef 」起別名「 的方式是這樣的:

typedef structstudent;

// 此時, 我們就可以使用my_type來定義該結構體的例項了。

student student_one;

可以總結為:typedef 原變數型別 別名

那我們用來為函式指標起別名:

typedef int (*pfun)(int, int);
沒看懂? 換個展示方式:

typedef int(*)(int, int) pfun; // 你好像不能這麼去寫, 不過可以這麼去看。所以還是要按照上面的方式去寫
這樣看就對應了typedef 原變數型別 別名的使用方式。

我們可以解釋為:這個宣告引入了 pfun 型別作為 函式指標(引數:兩個int型別, 返回值:int)的別名。

2.typedef為函式指標起別名

第一大節的main函式中,我們使用 int(*pfun)(int, int)的方式宣告了乙個 pfun函式指標,這次我們用typedef來為函式起個別名。

#include // 用typedef 為函式指標起別名。 相當於 typedef int(*)(int, int) pfun

typedef int(*fpun)(int, int);

int add(int a, int b);

int main()

int add(int a, int b)

三 實踐

1.實現 根據輸入不同的運算子,呼叫不同的函式進行加減乘除的運算, 並輸出結果

先說明幾點~

直接上**

#include // 為函式指標起乙個別名pfun  函式指標指向返回型別為int, 引數為兩個int 的函式

typedef int (*pfun)(int, int);

int add(int a, int b);

int sub(int a, int b);

int mul(int a, int b);

int div(int a, int b);

// 宣告乙個函式, 用函式指標pfun做返回值, 所以該函式可以說是指標函式

pfun calc_func(char op);

int calculate(int a, int b, char op);

int main()

int add(int a, int b)

int sub(int a, int b)

int mul(int a, int b)

int div(int a, int b)

// 判斷輸入的字元op, 返回不同的函式位址 (函式的位址就是函式名字)

pfun calc_func(char op)

// 指標可以指向空啊, 所以函式指標也可以

return null;

}int calculate(int a, int b, char op)

return -1;

}

文章參考:

函式指標與函式宣告

問題 當計算機啟動時,硬體將呼叫首位址為0的子例程,為了模擬開機啟動時的情形,如何設計出乙個c語句,以顯示呼叫該子例程。換個問法 有一段程式儲存在起始位址為 0的一段記憶體上,如果我們想要呼叫這段程式,請問該如何去做?c陷阱與缺陷 給出答案 void 0 相關知識 函式指標 函式指標是指向函式的指標...

C 中指標函式與函式指標的使用

指標函式 指標函式是乙個函式,只不過指標函式返回的型別是某一型別的指標。格式 型別名 函式名 函式引數列表 使用 指標函式,返回int 指標變數 int add int a,int b int main 函式指標 函式指標是指向函式的指標變數。所以函式指標其實是指標變數,只不過該指標變數指向函式。格...

函式指標的宣告

typedef函式指標的宣告與其他型別的宣告有所不同,主要遵守右左法則,具體的解釋如下 1.1 解讀的原則 右左原則 右左法則 首先從最裡面的圓括號看起,然後往右看,再往左看。每當遇到圓括號時,就應該掉轉閱讀方向。一旦解析完圓括號裡面所有的東西,就跳出圓括號。重複這個過程直到整個宣告解析完畢。個人認...