為了展示指標指向函式的功能,我們先來定義三個簡單的函式:
int
maximum
(int a,
int b)
intminimum
(int a,
int b)
intadd
(int a,
int b)
相信這三個函式對大家來講沒什麼難度,分別是返回較大值、返回較小值和返回兩數之和。
那麼有同學會問了,既然三個函式都那麼簡單,那這篇部落格重點講的是什麼呢?
問得好,我們今天的函式的的確確很簡單,不過我們要講的重點可不在函式哦!
我們今天要講的是指標,指向函式的指標。
定義了以上三個函式之後,我們再定義乙個可以隨心在以上三個函式的功能之間切換的函式:
int
handle
(int a,
int b,
int(
*function)
(int
,int))
//*function可以指向maximum/minimum/add中的任意乙個
細心的同學會問了,我們這個函式的引數好像有點奇怪呀,第三個引數為什麼和平常見到的不一樣呢?
是的,我們的第三個引數指向的是另外的函式,其中前乙個括號裡的是乙個指標,指向所要呼叫的函式的入口位址(關於「入口位址」,可以從我之前寫的一篇文章中了解),而後乙個括號裡則是被指向的函式所需要的引數型別。
接下來我們看看主函式:
int a,b;
printf
("請輸入兩個數:");
scanf
("%d%d"
,&a,
&b);
printf
("兩者中最大的數為:");
handle
(a,b,maximum)
;printf
("兩者中最小的數為:");
handle
(a,b,minimum)
;printf
("兩者之和為:");
handle
(a,b,add)
;
請輸入兩個數:23
98兩者中最大的數為:98
兩者中最小的數為:23
兩者之和為:121
以上就是本篇部落格的全部內容了,這篇部落格主要介紹了呼叫函式的新方法——使用指標,感興趣的同學可以點讚加關注哦! 指向函式的指標 函式指標
如果在程式中定義了乙個函式,在編譯時,編譯系統為函式 分配一段儲存空間,這段儲存空間的起始 又稱入口 位址 稱為這個函式的指標。指標即是位址 我們定義乙個指標變數,這個指標變數指向乙個整型資料變數的位址,我們稱指向乙個整型資料的指標變數 那麼它指向乙個函式的位址,稱為指向乙個函式的指標變數。形如 i...
函式指標 指向函式的指標
乙個函式總是占用一段連續的記憶體區域,函式名在表示式中有時也會被轉換為該函式所在記憶體區域的首位址,這和陣列名非常類似。我們可以把函式的這個首位址 或稱入口位址 賦予乙個指標變數,使指標變數指向函式所在的記憶體區域,然後通過指標變數就可以找到並呼叫該函式。這種指標就是函式指標。函式指標的定義形式為 ...
指向函式的指標,指向函式的指標作為函式引數
1.基本法 include pragma warning disable 4996 pragma warning disable 4715 指向函式的指標作為函式的引數 有兩個整數a,b,讓使用者輸入1,2或者3,當輸入1時,給出相對大值,當輸入2時,給出相對小值,當輸入3時,給出兩者之和 1.可以...