乙個函式返回int型指標,如何建立乙個指標指向這個函式?

時間 2021-06-01 15:22:45

1樓:

首先我們有乙個

以乙個int*為引數返回乙個int*的函式:

int*

func1

(int*p

)然後弄個指標指向func1:

int*(*

pf1)(

int*

);這就是題主的問題。

深入一步,如果我們要做乙個以這個指向func1的指標做引數,返回指向func1的指標的函式:

int*(*

func2

(int(*

(*pf1)(

int*

)),int*p

))(int*)

或者按C++11的最新標準:

auto

func3

(int(*

(*pf1)(

int*

)),int*p

)->int*(*

)(int*)

或者直接用typedef:

typedef

int*(*

PF1)(

int*

);PF1

func4

(PF1

pf1,

int*p)

再深入一步。。怎麼做乙個指向func2/func3/func4的指標。。?

我這次絕壁不會這麼做。。而是直接用typedef。。不然會被累死。。

typedef

PF1(

*PF2

)(PF1

,int*);

PF2pf2=&

func2

;pf2=&

func3

;pf2=&

func4

;當然,我們還可以繼續做乙個指標函式指向以PF2為引數,返回乙個PF2的函式。。但是我一定會使用typedef。。接下來就是大同小異了。。

2樓:

和通常的宣告函式指標一樣啊,把函式名替換成(*變數名)就可以了。

比如函式的宣告是 int* foo(int bar)那函式指標foobar就可以宣告成 int* (*foobar)(int);

賦值只需要foobar = foo 就可以了

將乙個double型(int型)格式化輸出為int型(double型)時發生了什麼?

冒泡 我這裡是這樣的 zq mac test cpp test cat 1.cpp include int main zq mac test cpp test g o 1 1.cpp 1.cpp 17 20 warning format specifies type int but the argu...

python初學,怎麼看乙個函式有沒有返回值?

你可以用dis模組檢視函式的位元組碼 deff a 1 defg return 1import disdis dis f LOAD CONST 1 1 STORE FAST 0 a LOAD CONST 0 None RETURN VALUE dis.dis g LOAD CONST 1 1 RET...

c語言如何判斷乙個宣告到底是函式還是指標還是陣列還是什麼東西?

yuantj 從裡到外一步步看。設要求的型別為 T。第一步 找到識別符號名 T f第二步 注意到識別符號的左側有 符號,所以這是個指標 設被指型別為 F,則變成了 F f 第三步 識別符號的右側有 3 說明這是個含有 3 個指標的陣列 F f 3 第四步 外圍有函式指標的宣告,證明 F 是乙個函式型...