C 知識點10 函式指標

2021-10-06 13:45:04 字數 1064 閱讀 5341

函式指標就是指向函式的指標,和其他指標一樣,函式指標也有型別

函式指標的型別由函式的返回值和函式的形參共同決定,與函式名無關,因為只是個名字

比如,函式的宣告如下:

int funcpointer(double d, string str);
那麼函式的型別就是int(double, string),所以函式指標就是int (*pf)(double, string)

函式指標的讀法依然是先中間,然後兩邊,

先看到pf和*,知道這是個指標,看到右側的(double, string),知道這是形參列表,從而了解該指標指向了乙個函式,最後看左邊int,知道指向的函式返回值是int

pf兩邊的括號必不可少,如果沒有,那麼pf就是函式名,返回乙個int型指標

函式指標的初始化和賦值

可以直接用函式名給函式指標賦值或初始化,或者在函式名前面加上取位址符號

函式指標的作為形參

函式指標作為形參時,傳入的函式會被當做指標處理

int main(int argc, char const *ar**)

void testfuncpointerpara(void (*pf)(int, int))

int (*returnfuncpointer(int a, int b))(int c, int d)

{ cout<<__func__ alt="" height="99" src="" width="553">

上述**中的函式returnfuncpointer返回乙個型別為int (*)(int a, int b)的函式指標,首先用該函式的返回值初始化pf,然後通過pf呼叫函式func

參考:《c++ primer》

函式指標知識點

cout hello endl typedef int funcptr int a,int b funcptr funcptr funcptr add int res funcptr 4,3 int res funcptr 4,3 這兩種方法都可以,但是我覺得第一種方法更好,更符合指標的引用方式 c...

C 知識點 指標

指標就是給數值分配乙個在記憶體中的空間,然後訪問是不用直接訪問數值,而是訪問那個位址,就可以讀取到那個數值,這樣可以做到不能修改數值。通過指標,可以簡化一些 c 程式設計任務的執行,還有一些任務,如動態記憶體分配,沒有指標是無法執行的。指標的本質是變數,可以是各種資料型別,定義乙個指標 ip 其中 ...

c 知識點 指標

概念 1 變數被視為一組相鄰的記憶體位置。指標是變數的記憶體位址。用變數起始處的記憶體位址命名變數,稱為指標。2 在函式呼叫中將變數作為傳引用引數使用,是以指標方式向函式提供實參。具體過程是由系統自動完成的。指標變數 1 指標變數是一種特殊的變數,必須宣告為指標型別。int p 2 每種變數型別都對...