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 是乙個函式型...