c 函式指標和qsort庫函式

2021-10-06 04:55:52 字數 1179 閱讀 9722

在c語言或者c++語言中可以把乙個函式的入口位址賦值給乙個指標,這就叫函式指標,然後可通過函式指標來呼叫函式。

c語言中:

定義形式:型別名(*指標變數名)(引數型別1,引數型別2…)

eg: int(*pf)(int,char)

表示pf是乙個函式指標,它所指向的函式,返回值是int,有兩個引數,分別為int和char

#include

void

printmin

(int a,

int b)

intmain()

c語言快速排序庫函式:

void qsort(void *base, int nelem, unsigned int width, int(*pfcompare)(const void*, const void*))

可以對任意型別的陣列進行排序

對陣列進行排序需要知道:

陣列其實位址(base)

數字元素個數(nelem)

每個元素的大小(width)

元素誰在前誰在後的規則

pfcompare(e1, e2)

int 比較函式名(const void *elem1, const void *elem2);

比較函式編寫規則:

如果*elem1應該排在*elem2前面,則函式返回值應該為負整數。

如果無所謂誰在前在後,返回0

如果*elem1應該排在*elem2後面,則函式返回值應該為正整數。

#include

#include

intmycompare

(const

void

*elem1,

const

void

*elem2)

intmain()

;qsort

(an, num,

sizeof

(unsigned

int)

, mycompare)

;for

(int i =

0; i < num; i++

)print

("%d"

, an[i]

)return0}

//10 11 123 4 8

qsort庫函式和函式指標

這個函式對陣列排序時需要知道 陣列起始的位址 陣列元素的個數 每個元素的大小 元素的排序規則 中每個單詞的含義 base 待排序陣列位址的起始位址 nelem 待排序陣列的元素個數 width 每個元素的大小 pfcompare 比較函式的位址 該比較函式需自己編寫規則 ps pf函式形式 int ...

排序庫函式sort 和qsort

sort是stl中提供的演算法,標頭檔案為 include以及using namespace std 函式原型如下 template void sort randomaccessiterator first,randomaccessiterator last template void sort r...

標準庫函式qsort排序

qsort函式包含在的標頭檔案裡。qsort函式宣告如下 void qsort void base,size t nmemb,size t size,int compar const void const void 引數說明如下 base 要排序的陣列 nmemb 陣列中的元素數目 size 每個陣...