- #include<stdio.h> //返回指针的函数
- char *name[7]={"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
- char *message="wrong input.";
- char *week(int day)
- {
- if(day<0||day>7)
- return message;
- else
- return name[day-1];
- }
- int main()
- {
- int day;
- char *p;
- printf("Input a number of a week:/n");
- scanf("%d",&day);
- p=week(day);
- printf("%s/n",p);
- //return 0;
- getch();
- }
- #include<stdio.h> //指向函数的指针
- #define GET_MAX 0
- #define GET_MIN 1
- int get_max(int i,int j)
- {
- return i>j?i:j;
- }
- int get_min(int i,int j)
- {
- return i>j?j:i;
- }
- int compare(int i,int j,int flag)
- {
- int ret;
- int(*p)(int,int);
- if(flag==GET_MAX)
- p=get_max;
- else
- p=get_min;
- ret=p(i,j);
- return ret;
- }
- int main()
- {
- int i=5,j=10,ret;
- ret=compare(i,j,GET_MAX);
- printf("The MAX is %d/n",ret);
- //return 0;
- getch();
- }
- #include<stdio.h> //函数指针做形参
- int get_big(int i,int j)
- {
- return i>j?i:j;
- }
- int get_max(int i,int j,int k,int (*p)(int,int))
- {
- int ret;
- ret=p(i,j);
- ret=p(ret,k);
- return ret;
- }
- int main()
- {
- int i=5,j=10,k=15,ret;
- ret=get_max(i,j,k,get_big);
- printf("The MAX is %d/n",ret);
- //return 0;
- getch();
- }
- #include<stdio.h> //返回函数指针的函数
- int get_big(int i,int j)
- {
- return i>j?i:j;
- }
- int (*get_function(int a))(int,int)
- {
- printf("the number is %d/n",a);
- return get_big;
- }
- int main()
- {
- int i=5,j=10,max;
- int (*p)(int,int);
- p=get_function(100);
- max=p(i,j);
- printf("The MAX is %d/n",max);
- //return 0;
- getch();
- }