樓主已經開始想要知道如何用函數指針了,不錯,好學生,給你個例子
創新互聯建站專注于布爾津網站建設服務及定制,我們擁有豐富的企業做網站經驗。 熱誠為您提供布爾津營銷型網站建設,布爾津網站制作、布爾津網頁設計、布爾津網站官網定制、小程序制作服務,打造布爾津網絡公司原創品牌,更為您提供布爾津網站排名全網營銷落地服務。
#include stdio.h
int ff(int(*p)(int,int),int a,int b)//原始寫法,閱讀不便
{
return p(a,b);
}
typedef int(*Pfun)(int,int);//定義函數指針類型,同時申明了原型 返回int 兩個int形參
int f(Pfun p,int a,int b) //改進寫法 易懂
{
return p(a,b);
}
int add(int a,int b)
{
printf("加法函數add被調用:");
return a+b;
}
int sub(int a,int b)
{
printf("減法函數sub被調用:");
return a-b;
}
void main()
{//函數指針初步應用
int a=1,b=2;
printf(" %d+%d=%d\n",a,b,f(add,a,b));
printf(" %d-%d=%d\n",a,b,f(sub,a,b));
printf(" %d+%d=%d\n",a,b,ff(add,a,b));
printf(" %d-%d=%d\n",a,b,ff(sub,a,b));
}
///////////運行結果:
加法函數add被調用: 1+2=3
減法函數sub被調用: 1-2=-1
加法函數add被調用: 1+2=3
減法函數sub被調用: 1-2=-1
#include?stdio.h
//---子函數聲明---//?
int?func1();
int?func2(int?(*func1)());????????//形參為函數指針(即指向函數的指針)?
//---主函數---//?
int?main(){
printf("向函數二傳遞函數一,\n即函數一作為函數二的參數。\n");
printf("%d?",func1());
printf("%d\n",func2(func1));//注意函數名即為函數地址!!!!!!?
}????????????????????????????????//實參為函數名func1或者func1,兩者等價,而非func1()?
//---子函數定義---//?
int?func1(){
return?1;
}
int?func2(int?(*func1)()){????????//形參為函數指針(即指向函數的指針)
return?func1()+1;
}
Question:在函數void function()中,需要將另外一個函數double input()的函數名作為參數。
typedef double (*P)(int);
Note:參數部分需要注意,函數input()所有的輸入參數類型都需要包含在內。
例如 double input(double u[5], int num, double x), 則在定義時寫作 typedef double (*P)(double*,int,double)。
此時,函數作為一種類型,可以直接被其他函數調用。
函數聲明中定義 void function(P input),調用function(input)即可。
也可以寫成
本文標題:c語言函數作為參數 c語言 函數作為參數
URL鏈接:http://m.newbst.com/article16/doghdgg.html
成都網站建設公司_創新互聯,為您提供品牌網站制作、品牌網站建設、手機網站建設、外貿網站建設、網站導航、ChatGPT
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯