c語言指向函數(shù)調(diào)整 c語言指向是什么意思

在C語言中,指向函數(shù)的指針怎么調(diào)用函數(shù)?

1樓感覺對(duì)函數(shù)指針不是很了解,就不評(píng)論了. 2樓的基本還可以,但是int (*p)(),然后讓它指向max函數(shù),一個(gè)包含兩個(gè)未知量的函數(shù),這在后來的標(biāo)準(zhǔn)c里面是不支持的好像. 3樓吧,那么多*,感覺有點(diǎn)不大對(duì). *是取內(nèi)容,連著那么* ,我沒試過,沒有多少意義至少.他11級(jí)了,應(yīng)該也不會(huì)怎么有錯(cuò),你可以試試(我不打算加那么多*, 就不調(diào)試了).

企業(yè)建站必須是能夠以充分展現(xiàn)企業(yè)形象為主要目的,是企業(yè)文化與產(chǎn)品對(duì)外擴(kuò)展宣傳的重要窗口,一個(gè)合格的網(wǎng)站不僅僅能為公司帶來巨大的互聯(lián)網(wǎng)上的收集和信息發(fā)布平臺(tái),成都創(chuàng)新互聯(lián)面向各種領(lǐng)域:成都樓梯護(hù)欄成都網(wǎng)站設(shè)計(jì)公司、營(yíng)銷型網(wǎng)站建設(shè)解決方案、網(wǎng)站設(shè)計(jì)等建站排名服務(wù)。


程序里面對(duì)函數(shù)的調(diào)用,就是通過函數(shù)的入口地址,然轉(zhuǎn)入函數(shù). 這樣的話,函數(shù)指針的意義就明顯了.函數(shù)指針指向了函數(shù)的入口,即函數(shù)指針里是函數(shù)的入口地址. 指針不能指向函數(shù)這種說法肯定是不對(duì)的.話說回來,1樓的老兄可能看錯(cuò)書了,或者記錯(cuò)了.

類型匹配很重要,二樓的聲明和使用不一致,這在老版的編譯器里也是支持的.那時(shí)候ANSI標(biāo)準(zhǔn)還沒有制定出來.現(xiàn)在而言,這種定義應(yīng)該不被支持了才是.

那個(gè)聲明應(yīng)該如下:

int (*p)(int , int);

這樣才能指向

int name(int,int)型的函數(shù).么有實(shí)驗(yàn)過,但按這種寫法是不錯(cuò)的肯定.

三樓那個(gè)********p,怎么都覺得不對(duì).

C語言——指向函數(shù)的指針

c語言中叫做回調(diào)函數(shù),將函數(shù)指針(如max)作為函數(shù)的參數(shù),函數(shù)(如fun)中調(diào)用這個(gè)參數(shù)指向的函數(shù),

調(diào)用函數(shù)(fun)時(shí)看情況而給函數(shù)傳入不同的函數(shù)指針

例如fun(a,b,min),那么fun函數(shù)調(diào)用執(zhí)行三個(gè)參數(shù)就調(diào)用min函數(shù)

參數(shù)的定義要與傳入的函數(shù)指針相匹配

例如fun(int,x,int y,(*p)(int,int)) 那么調(diào)用fun(a,b,min)時(shí),min的參數(shù)必須是(int ,int)

關(guān)于C語言中,指向函數(shù)的指針的問題

C中,賦值運(yùn)算要求左值與右值的類型相同。

類型相同是指:變量本身的類型相同,以及指向的對(duì)象類型也相同,兩者缺一不可。

對(duì)于函數(shù)則是,返回值相同,參數(shù)類型及個(gè)數(shù)都必須相同。

除此之外,c還規(guī)定,變量在使用之前,必須先定義!

在你的例子中,1)返回值相同,參數(shù)類型與個(gè)數(shù)都相同,故編譯通過!

2)返回值相同,參數(shù)類型與個(gè)數(shù)都相同,故編譯也能通過!

所以不明白樓主通不過編譯是怎樣一個(gè)具體的問題!

問題是否出在函數(shù)未定義之上呢?

int cmp(const void*,const void*); //這里只是聲明而已,不是定義!你必須在后面定義才行。

另外,問題也跟編譯器的掃描過程有關(guān)聯(lián)!這個(gè)問題說起來有點(diǎn)復(fù)雜,你可以大概了解下編譯原理的知識(shí)!

你可以試著調(diào)整下 p=cmp; 語句的位置,比如在main的內(nèi)部或外部,然后看看有什么不同。

C語言指向函數(shù)的指針的調(diào)用

#includestdio.h

int *d_bubblesort(int a[],int n)//數(shù)組長(zhǎng)度為n的冒泡降序排序

{

int i,j;

int temp;

for(i=0;in;i++)

{

for(j=n-1;ji;j--)

{

if(a[j]a[j-1])

{

temp=a[j-1];

a[j-1]=a[j];

a[j]=temp;

}

}

}

return a;

}

void main()

{

int i;

int *p=NULL;

int a[10]={6,5,4,1,2,3,9,8,7,10};

int *(*fun)(int*,int);

fun=d_bubblesort;

p=fun(a,10);

for(i=0;i10;i++)

{

printf("%d\t",p[i]);

}

}

文章標(biāo)題:c語言指向函數(shù)調(diào)整 c語言指向是什么意思
本文URL:http://bm7419.com/article44/ddcdphe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、企業(yè)網(wǎng)站制作、電子商務(wù)小程序開發(fā)、面包屑導(dǎo)航Google

廣告

聲明:本網(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)站網(wǎng)頁設(shè)計(jì)