27.函数的指针

#include <stdio.h>

//定义一个参数类型为 函数指针的函数
int calc(int x, int y, int (*pt)(int, int) ); 

int add(int,int);
int sub(int,int);

int getSum(int,int);
int getGap(int,int);

int main(void)
{

//定义一个函数指针(2要素:参数、返回值)
int (*pt)(int,int);

//为函数指针赋值
pt = getSum;

//用函数名调用函数
printf("用函数名调用函数:%d\n", getSum(9,1) );

//用函数指针调用函数1
printf("用函数指针调用函数:%d\n", pt(9,2) );

//用函数指针调用函数2
printf("用函数指针调用函数:%d\n", (*pt)(9,3) );

pt=getGap;

printf("求Gap:%d\n", (*pt)(9,3) );

printf("%p=====%p\n", pt, getGap);


//调用函数的实参为函数指针
printf("add:%d   sub:%d \n", calc(2, 3, &add) ,calc(2, 3, sub)  );
  
return 0;
}


//实现一个参数类型为 函数指针的函数
int calc(int x, int y, int (*pt)(int x, int y) )
{
    return (*pt)(x,y);
}


int add(int a,int b)
{
  return a + b;
}
int sub(int x,int y)
{
  return x * y;
}

int getSum(int x,int y)
{
  return x + y;
}

int getGap(int x,int y)
{
  return x - y;
}

 

posted @ 2021-07-31 15:43  学而不思则罔!  阅读(44)  评论(0)    收藏  举报