c語言qsort函數(shù)出錯的簡單介紹

c語言qsort 問題

April

創(chuàng)新互聯(lián)建站成都網(wǎng)站建設(shè)按需求定制制作,是成都網(wǎng)站建設(shè)公司,為人造霧提供網(wǎng)站建設(shè)服務(wù),有成熟的網(wǎng)站定制合作流程,提供網(wǎng)站定制設(shè)計服務(wù):原型圖制作、網(wǎng)站創(chuàng)意設(shè)計、前端HTML5制作、后臺程序開發(fā)等。成都網(wǎng)站建設(shè)熱線:13518219792

February

January

March

May

Press any key to continue

#includeiostream

#includestdlib.h

#includestring.h

using namespace std;

int main()

{

int cmp(const void *a,const void *b); //注意這里的const void *b

char s[5][10]={"January","February","March","April","May"};

int i;

qsort(s,5,sizeof(char)*10,cmp);

for(i=0;i!=5;i++)

printf("%s\n",s[i]);

return 0;

}

int cmp(const void *a,const void *b) //注意這里的const void *b

{

return (strcmp((char *)a,(char *)b));

}

C語言我的qsort快排代碼為何錯誤?

int cmp(const void*a,const void*b)定義cmp有兩個參數(shù)

你調(diào)用的時候qsort(s,3,sizeof(s[0]),cmp);沒加參數(shù)

c語言qsort函數(shù)問題

您好:

回答問題a:調(diào)用的是函數(shù)qsort,包含在庫stdlib.h中,該函數(shù)的主要內(nèi)容是用快速排序算法對目標(biāo)進行排序,排序的規(guī)則由最后一個參數(shù)決定,sum函數(shù)就是一個普通函數(shù),這里用b-a,表示的是使用降序的規(guī)則對目標(biāo)進行排序;傳遞的是兩個常量指針,參數(shù)是由qsort函數(shù)在其實現(xiàn)過程中傳入。

問題b:當(dāng)函數(shù)沒有“()”時候,表示函數(shù)的地址,也就是說,在使用qsort函數(shù)的時候,傳入了sum的函數(shù)地址,讓qsort找到sum的實現(xiàn),并調(diào)用它。

回答完畢,有何不解可追問,望笑納 ^_^

C++排序函數(shù)出錯 error C2664: 'qsort' : cannot convert parameter4 from 'int ()' to 'int (__cdecl *)

__cdecl 是C Declaration的縮寫(declaration,聲明),表示C語言默認(rèn)的函數(shù)調(diào)用方法:所有參數(shù)從右到左依次入棧,這些參數(shù)由調(diào)用者清除,稱為手動清棧。被調(diào)用函數(shù)不會要求調(diào)用者傳遞多少參數(shù),調(diào)用者傳遞過多或者過少的參數(shù),甚至完全不同的參數(shù)都不會產(chǎn)生編譯階段的錯誤。

_stdcall 是StandardCall的縮寫,是C++的標(biāo)準(zhǔn)調(diào)用方式:所有參數(shù)從右到左依次入棧,如果是調(diào)用類成員的話,最后一個入棧的是this指針。這些堆棧中的參數(shù)由被調(diào)用的函數(shù)在返回后清除,使用的指令是 retnX,X表示參數(shù)占用的字節(jié)數(shù),CPU在ret之后自動彈出X個字節(jié)的堆??臻g。稱為自動清棧。函數(shù)在編譯的時候就必須確定參數(shù)個數(shù),并且調(diào)用者必須嚴(yán)格的控制參數(shù)的生成,不能多,不能少,否則返回后會出錯。

第四個參數(shù)的調(diào)用方式不一樣,你修改一下就行了

網(wǎng)頁標(biāo)題:c語言qsort函數(shù)出錯的簡單介紹
網(wǎng)頁鏈接:http://muchs.cn/article26/hcgijg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊品牌網(wǎng)站設(shè)計外貿(mào)網(wǎng)站建設(shè)網(wǎng)站改版、自適應(yīng)網(wǎng)站、網(wǎng)站營銷

廣告

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

h5響應(yīng)式網(wǎng)站建設(shè)