c函数指针

#include <stdio.h>

int max(int a, int b){
  return a > b ? a : b;
}

int min(int a, int b){
  return a > b ? b : a ;
}

//把函数指针作为函数的参数,最后一个参数是指针函数
int exe(int a, int b, int(*pf)(int, int)){
  return (*pf)(a,b);
}
int main(){
  int a = 10;
  int b = 30;

  //返回值 函数指针 参数列表                                                    
  int (*pfun)(int, int);

  //方法1                                                                       
  pfun = &max;
  int result = (*pfun)(a, b);
  printf("%d\n", result);
    
  //方法2                                                                       
  pfun = max;
  int r1 = pfun(a, b);
  printf("%d\n", r1);

  //把函数指针作为函数的参数
  int i;
  scanf("%d",&i);
  int (*pf)(int,int);
  if(i){
    pf = &max;
  }else{
    pf = &min;
  }

  int r2 = exe(a, b, pf);
  printf("rs:%d\n", r2);
}


posted @ 2018-06-08 16:07  小石王  阅读(130)  评论(0编辑  收藏  举报