c++把函式a作為引數傳遞給另外函式b時,實際上是把函式a作為指標傳遞給另外的函式b,這就涉及到了函式指標。
函式指標宣告如下:
return_type (
*p_name)
(arg_list)
;//表示返回值為return_type,引數列表為arg_list的函式指標p_name.
例如:
//定義乙個函式
intadd
(int a,
int b)
int(
*pfun)
(int
,int);
//宣告乙個函式指標 pfun,引數列表為 int,int
pfun = add;
//使用函式指標指向乙個函式
注意:函式指標的引數型別和返回型別必須與指向的函式引數型別返回型別一致
int res =
pfun(1
,2);
//使用函式指標呼叫函式add,相當於int res = add(1,2);
函式a作為引數傳遞給函式b時,函式b宣告如下:
inta(
int a,
int b);b
(arg_list,
int(
*pa)
(int
,int))
;
函式b呼叫如下:
b(.
..,a)
;
例子:
int
cmpasc
(int x,
int y)
void
sort
(int a,
int n,
int(
*cmp)
(int
,int))
//最後乙個引數為函式指標型別引數
intmain
(int argc,
const
char
* ar**)
;sort
(a,6
, cmpasc)
;//cmpasc函式名作為引數傳遞給函式sort
for(
auto
&e:a)
cout<" ";
return0;
}
將函式名 位址 作為引數傳遞
include int add int a,int b int aaa int a,int b,int p int,int 注意定義的函式指標 int main int a 1,b 2 printf d aaa a,b,add 將函式名 函式位址 作為引數 return 0 給上面乙個程式,其中最主...
C語言之函式名作為函式的輸入引數
1 函式位址如何傳遞 先說一次傳遞乙個函式的 我們先定義乙個函式 double add double x,double y 然後接著建立乙個函式指標 double pf double,double add 這裡 pf 的括號不能省,不然就不是函式指標了 我們現在有乙個函式 double calcul...
指標作為函式引數傳遞
值傳遞,指標傳遞?這幾天在學習c過程中,在使用指標作為函式引數傳遞的時候出現了問題,根本不知道從何得解 源 如下 createnode binnode tree,char p 該 段的意圖是通過乙個函式建立乙個二叉樹的節點,然而在,呼叫該函式後,試圖訪問該節點結構體的成員時候,卻發生了記憶體訪問錯誤...