1樓感覺(jué)對(duì)函數(shù)指針不是很了解,就不評(píng)論了. 2樓的基本還可以,但是int (*p)(),然后讓它指向max函數(shù),一個(gè)包含兩個(gè)未知量的函數(shù),這在后來(lái)的標(biāo)準(zhǔn)c里面是不支持的好像. 3樓吧,那么多*,感覺(jué)有點(diǎn)不大對(duì). *是取內(nèi)容,連著那么* ,我沒(méi)試過(guò),沒(méi)有多少意義至少.他11級(jí)了,應(yīng)該也不會(huì)怎么有錯(cuò),你可以試試(我不打算加那么多*, 就不調(diào)試了).
企業(yè)建站必須是能夠以充分展現(xiàn)企業(yè)形象為主要目的,是企業(yè)文化與產(chǎn)品對(duì)外擴(kuò)展宣傳的重要窗口,一個(gè)合格的網(wǎng)站不僅僅能為公司帶來(lái)巨大的互聯(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)用,就是通過(guò)函數(shù)的入口地址,然轉(zhuǎn)入函數(shù). 這樣的話,函數(shù)指針的意義就明顯了.函數(shù)指針指向了函數(shù)的入口,即函數(shù)指針里是函數(shù)的入口地址. 指針不能指向函數(shù)這種說(shuō)法肯定是不對(duì)的.話說(shuō)回來(lái),1樓的老兄可能看錯(cuò)書了,或者記錯(cuò)了.
類型匹配很重要,二樓的聲明和使用不一致,這在老版的編譯器里也是支持的.那時(shí)候ANSI標(biāo)準(zhǔn)還沒(méi)有制定出來(lái).現(xiàn)在而言,這種定義應(yīng)該不被支持了才是.
那個(gè)聲明應(yīng)該如下:
int (*p)(int , int);
這樣才能指向
int name(int,int)型的函數(shù).么有實(shí)驗(yàn)過(guò),但按這種寫法是不錯(cuò)的肯定.
三樓那個(gè)********p,怎么都覺(jué)得不對(duì).
c語(yǔ)言中叫做回調(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)
C中,賦值運(yùn)算要求左值與右值的類型相同。
類型相同是指:變量本身的類型相同,以及指向的對(duì)象類型也相同,兩者缺一不可。
對(duì)于函數(shù)則是,返回值相同,參數(shù)類型及個(gè)數(shù)都必須相同。
除此之外,c還規(guī)定,變量在使用之前,必須先定義!
在你的例子中,1)返回值相同,參數(shù)類型與個(gè)數(shù)都相同,故編譯通過(guò)!
2)返回值相同,參數(shù)類型與個(gè)數(shù)都相同,故編譯也能通過(guò)!
所以不明白樓主通不過(guò)編譯是怎樣一個(gè)具體的問(wèn)題!
問(wèn)題是否出在函數(shù)未定義之上呢?
int cmp(const void*,const void*); //這里只是聲明而已,不是定義!你必須在后面定義才行。
另外,問(wèn)題也跟編譯器的掃描過(guò)程有關(guān)聯(lián)!這個(gè)問(wèn)題說(shuō)起來(lái)有點(diǎn)復(fù)雜,你可以大概了解下編譯原理的知識(shí)!
你可以試著調(diào)整下 p=cmp; 語(yǔ)句的位置,比如在main的內(nèi)部或外部,然后看看有什么不同。
#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語(yǔ)言指向函數(shù)調(diào)整 c語(yǔ)言指向是什么意思
本文URL:http://jinyejixie.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í)需注明來(lái)源: 創(chuàng)新互聯(lián)