Cool_Breeze 发表于 2020-4-16 16:03:19

本帖最后由 Cool_Breeze 于 2020-4-16 16:31 编辑

#include <stdio.h>
int add(int ,int);
int sub(int ,int);
int (* p(char opt)\
/*
        p(char opt) 表示函数p有一个参数是char类型,返回值是函数的指针int(*)(int,int)

*/
)(int,int);
int call(int (*mp)(int,int)\
/*
        这个参数就是函数指针;
*/
, int a, int b);

int main(void)
{
        int a=10,b=5;
        int (*methodp)(int,int);//创建一个函数指针;
        methodp=p('+');//p在前面已经声明了(p的返回类型就是函数指针);
        printf("%d + %d = %d\n",a,b,call(methodp,a,b));
        printf("%d - %d = %d\n",a,b,call(methodp=p('-'),a,b));
        return 0;
}

int add(int a, int b)
{
        return a+b;
}
int sub(int a, int b)
{
        return a-b;
}
int call(int (*mp)(int,int),int a,int b)
{
        return mp(a,b);
}
int (* p(char opt))(int,int)
{
        switch (opt)
        {
                case '+' : return add;
                case '-' : return sub;
        }
}

XFCoding 发表于 2020-5-22 11:32:32

MARK,回头再看看视频

15186338930 发表于 2020-7-8 00:51:06

我要吃肉肉 发表于 2018-8-7 12:18
#include

int a,b,c;


#include <stdio.h>

int a,b,c;

void main()

{
      int max(int,int);
      int min(int,int);
      int sum(int,int);

      void process(int x,int y,int(*fun)());

      
      printf("plsase input a&b:");
      scanf("%d,%d",&a,&b);
      process(a,b,max);
}
void process(int x,int y,int(*fun)())
{
       c=max(a,b);
       printf("max=%d\n",c);
       c=min(a,b);
       printf("min=%d\n",c);
       c=sum(a,b);
       printf("sum=%d\n",c);
}
int max(int x,int y)
{

      if(a>b)
      {
                return a;
      }
      else
      {
                return b;
      }
}

int min(int x,int y)
{
      if(a<b)
      {
                return a;
      }
      else
      {
                return b;
      }
}

int sum(int x,int y)
{
      int add;
      add=a+b;
      return add;
}

努力的小沈 发表于 2020-8-6 13:36:49

Jundong-4316 发表于 2019-3-5 20:51
函数指针作为参数

#include


你这样一讲我终于明白了。{:10_254:}{:10_254:}

guad268 发表于 2020-8-19 23:06:25

打卡

guad268 发表于 2020-8-20 22:41:12

打卡

木不怨落丶 发表于 2020-8-24 13:11:45

{:10_243:}

wxhlyt 发表于 2020-11-5 10:21:43

好好学习咯

shawshanke 发表于 2021-1-28 14:49:51

我裂开了{:10_266:}

1140913594 发表于 2021-3-29 15:14:49

讲得好!

陈霍成 发表于 2021-8-26 15:30:50

{:10_266:}{:10_266:}{:10_266:}{:10_266:}{:10_266:}{:10_266:}{:10_266:}{:10_266:}

HandsonYe 发表于 2022-3-11 14:52:07

{:10_243:}

Puppet16 发表于 2022-5-1 17:35:24

好好学习才能天天向上!

Puppet16 发表于 2022-5-2 13:58:32

好好学习才能天天向上!

豆嘉木 发表于 2022-5-12 12:35:15

划重点:函数的类型就是函数的返回值

lvdaye 发表于 2022-5-16 15:47:55

事实证明我是个普通人,以后就不要 自以为是了。

Devil丶Jay 发表于 2022-7-2 21:33:55

我的头快要裂开了!{:10_266:}

C入坑 发表于 2022-7-24 10:29:57

calc不写也能运行,为什么要多写这一步

小硕 发表于 2022-9-28 17:46:10

我要吃肉肉 发表于 2018-8-7 12:18
#include

int a,b,c;


你这个每次都把max,min,sum输出了一遍,process函数里面只写printf("%d\n",(*fun)(x,y));就行.
你这个process函数只是每次输出一个,你里面不能啥都有。

一个大西瓜嚯嚯 发表于 2023-3-6 17:29:05

{:10_269:}
页: 1 [2] 3
查看完整版本: S1E30:指针函数和函数指针