c語言函數(shù)指針何時(shí)使用 c語言函數(shù)指針和指針函數(shù)

c語言中函數(shù)指針是什么 有什么用 舉個(gè)實(shí)例

函數(shù)指針是指向函數(shù)的指針變量。 因而“函數(shù)指針”本身首先應(yīng)是指針變量,只不過該指針變量指向函數(shù)。這正如用指針變量可指向整型變量、字符型、數(shù)組一樣,這里是指向函數(shù)。

成都創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)公司、網(wǎng)站制作、網(wǎng)站營(yíng)銷推廣、網(wǎng)站開發(fā)設(shè)計(jì),對(duì)服務(wù)成都圍欄護(hù)欄等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)及推廣經(jīng)驗(yàn)。成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司成立于2013年,提供專業(yè)網(wǎng)站制作報(bào)價(jià)服務(wù),我們深知市場(chǎng)的競(jìng)爭(zhēng)激烈,認(rèn)真對(duì)待每位客戶,為客戶提供賞心悅目的作品。 與客戶共同發(fā)展進(jìn)步,是我們永遠(yuǎn)的責(zé)任!

函數(shù)指針有兩個(gè)用途:調(diào)用函數(shù)和做函數(shù)的參數(shù)。

函數(shù)指針的聲明方法為:

返回值類型 ( *?指針變量名) ([形參列表]);

如:

int func(int x); /* 聲明一個(gè)函數(shù) */

int (*f) (int x); /* 聲明一個(gè)函數(shù)指針 */

f=func; /* 將func函數(shù)的首地址賦給指針f */

或者使用下面的方法將函數(shù)地址賦給函數(shù)指針:

f = func;

賦值時(shí)函數(shù)func不帶括號(hào),也不帶參數(shù),由于func代表函數(shù)的首地址,因此經(jīng)過賦值以后,指針f就指向函數(shù)func(x)的代碼的首地址。

下面的程序說明了函數(shù)指針調(diào)用函數(shù)的方法:

#includestdio.h

int?max(int?x,int?y){return?(xy??x:y);}

int?main()

{

int?(*ptr)(int,?int);

int?a,?b,?c;

ptr?=?max;

scanf("%d%d",?a,?b);

c?=?(*ptr)(a,b);

printf("a=%d,?b=%d,?max=%d",?a,?b,?c);

return?0;

}

"'>在C語言指針中 什么時(shí)候用 "." 什么時(shí)候用 "->"

當(dāng)左邊是個(gè)對(duì)象時(shí)用“.”

當(dāng)左邊是個(gè)指向?qū)ο蟮闹羔槙r(shí)用“-”

比如,Class A;

Class *B=A;

A有函數(shù)myfun()

則調(diào)用時(shí)用

A.myfun();

B-myfun();

c語言函數(shù)指針怎么用???尤其是main函數(shù)

main()

{int x,n;

scanf("%d%d",x,n);

pn(x,n);

printf("%d",pn); //你這里寫的不正確,你把pn當(dāng)作返回值了,其實(shí)它是個(gè)函數(shù)指針,printf的第二個(gè)參數(shù)可以是指針也可是值,所以編譯可以通過,若顯示也顯示的是pn這個(gè)函數(shù)的地址值

}

/////////////////可以這樣寫,用個(gè)變量p做傳遞

main()

{int x,n;

int p;

scanf("%d%d",x,n);

p=pn(x,n);

printf("%d",p); //用p做傳遞

}

--------------------------------------

是這樣的,我又仔細(xì)看了

#includemath.h

pn(int x,int n)

{int p;

if(n==0) p=1;

if(n==1) p=x;

if(n=1) p=((2*n-1)*x-pn(x,n-1)-(n-1)*pn(x,n-2))/n;

return p;

} //這個(gè)會(huì)比較三次,尤其是n=1時(shí),p=x,又進(jìn)行了p=1的調(diào)用,結(jié)果就錯(cuò)啦,試著把n=1的''去掉

pn(int x,int n)

{int p;

if(n==0) return(1);

if(n==1) return(x);

if(n=1) return(((2*n-1)*x-pn(x,n-1)-(n-1)*pn(x,n-2))/n);

} //這個(gè)比較的次數(shù)和值n有關(guān)

另外,虛機(jī)團(tuán)上產(chǎn)品團(tuán)購(gòu),超級(jí)便宜

C語言 函數(shù)指針 的調(diào)用問題?函數(shù)指針 怎么用?最好有例子。。

#includestdio.h

//定義類型fun_ptr,它是一個(gè)函數(shù)指針,指向的函數(shù)返回值為int,參數(shù)為int

typedef?int?(*fun_ptr)(int);

//fun1

int?fun1(int?a)

{

printf("call?fun1,pram=%d,return?%d+1\n",?a,?a);

return?a+1;

}

//fun2

int?fun2(int?a)

{

printf("call?fun2,pram=%d,return?%d+2\n",?a,?a);

return?a+2;

}

int?main(int?argc,?char?*argv[])

{

int?a?=?10;

int?s?=?0;

//定義函數(shù)指針類型的變量p_fun

fun_ptr?p_fun;

//指向fun1

p_fun?=?fun1;

//執(zhí)行

s=p_fun(a);

printf("s=%d\n",?s);

//指向fun2

p_fun?=?fun2;

//執(zhí)行

s=p_fun(a);

printf("s=%d\n",?s);

return?0;

}

執(zhí)行結(jié)果:

名稱欄目:c語言函數(shù)指針何時(shí)使用 c語言函數(shù)指針和指針函數(shù)
URL網(wǎng)址:http://muchs.cn/article30/ddcgcpo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、網(wǎng)站排名網(wǎng)站收錄、網(wǎng)站內(nèi)鏈、外貿(mào)網(wǎng)站建設(shè)營(yíng)銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)