C 函数指针
来源:互联网 发布:centos rpm e 编辑:程序博客网 时间:2024/04/30 05:01
C 函数指针
#include <stdio.h>#include <stdlib.h>typedef int (*cmp)(void *, void *);typedef struct book * Book;struct book{int id;char name[10];};void *max( void * array[], int len, cmp func);int cmp_int(void *p, void *q);int cmp_struct(void *p, void *q);int insert_struct(Book *pos , int id, char * name);int insert_int(int **pos, int val);void *max(void * array[],int len, cmp func){ void *tmp; int i; tmp = array[0]; for( i = 1; i < len; i ++) { if( (*func)(tmp, array[i]) == -1) tmp = array[i]; } return tmp;} int cmp_int(void *p, void *q){ int *a, *b; a = (int *)p; b = (int *)q; if( *a > *b) return 1; else if( *a < *b) return -1; else return 0;} int cmp_struct(void *p , void *q){ Book a, b; a = (Book)p; b = (Book)q; if(a->id > b->id) { return 1; } else if(a->id < b->id) { return -1; } else return 0;} int insert_struct(Book *pos, int id, char *name){ Book p; p = (Book) malloc(sizeof(struct book)); if(p == NULL) { printf("error"); return -1; } p->id = id; strcpy(p->name, name); *pos = p; return 0;} int insert_int(int **pos, int val){ int *p; p = (int *)malloc(sizeof(int)); if(p == NULL) return -1; *p = val; *pos = p; return 0;} int main(){ Book arrayb[3]; int *arrayi[3]; int i; int id; int val; char name[10]; Book res1; int *res2; for( i = 0; i < 3; i ++) { printf("input"); scanf("%d", &id); scanf("%s", name); if(insert_struct( &(arrayb[i]) , id, name) == -1) exit(1); printf("input int"); scanf("%d",&val); if(insert_int (&(arrayi[i]) , val) == -1) exit(1); } res1 = (Book) max(arrayb, 3, cmp_struct); res2 = (int *) max(arrayi, 3, cmp_int); printf("%d %s/n", res1->id, res1->name); printf("%d/n", *res2); getchar(); getchar();}
- C指针函数 && 函数指针
- C++----函数&函数指针
- C++,C函数指针
- C/C++:函数指针
- 【c/c++】指针函数和函数指针
- 【C和指针】函数指针
- 《c和指针》函数指针
- c语言函数指针
- C/C++函数指针
- C语言函数指针
- [C]函数指针数组
- C 函数指针
- C 函数指针数组
- c 函数指针
- c/c++函数指针
- c 函数指针
- c中的函数指针
- c函数指针
- google suggest 下拉菜单(asp.net版本)
- XTools登上央视,欲打造CRM第一品牌
- 股权登记日第二天卖出股票是否还能得到现金分红?
- svchost.exe应用程序错误
- windows XP cmd命令集
- C 函数指针
- vc下调试activex控件
- VB6在ListBox或Combox中搜索字符串项的模块(支持模糊与精确查找)
- 二进制,八进制,十六进制向十进制转换(一)
- string和stringbuffer的区别
- sql语句中插入数据的三种常用方法及小贴士
- 直接调用类成员函数地址
- 关于SQL分布式数据远程传输问题
- JPA中one-to-one关系的单向映射示例