c语言范式编程之lsearch
来源:互联网 发布:车牌号码测吉凶算法 编辑:程序博客网 时间:2024/05/21 12:48
#include<stdio.h>int cmpfn(void *elem1, void *elem2){ int *ip1 = elem1; int *ip2 = elem2; return *ip1 - *ip2;}void *lsearch(void *key, void *base ,int n, int elemSize, int (*cmpfn)(void *,void *)){ int i=0;for( i=0; i<n; i++){void *elemAddr = (char *)base + i*elemSize;if(cmpfn(key,elemAddr) == 0)return elemAddr;}return NULL;}int main(){ int array[] = {1,3,5,7,9,11,13,15,17,19}; int key1 = 13; int key2 = 33; int *find1 = NULL; int *find2 = NULL; find1 = lsearch(&key1,array,sizeof(array)/sizeof(int),sizeof(int),cmpfn); find2 = lsearch(&key2,array,sizeof(array)/sizeof(int),sizeof(int),cmpfn); printf("address of array is:%p\n",array); printf("address of find1 is:%p\n",find1); printf("address of find2 is:%p\n",find2);return 0;}