函数指针


    //函数指针

    //与整形指针(指向整形变量的指针) 类似,指向函数的指针乘坐函数指针.

    

    //对于指针来说,最重要的亮点:首地址  以及  所取字节数.

    

    //int *p=&a; 首地址是&a,4个字节.

    //Student *q=&stu1; 首地址是&stu1,sizeof(Student)这么多字节

    

    //取多少字节 是由 指针所指向的变量类型所决定的.

    

    //想要弄懂函数指针,需要清楚亮点内容:1,函数名 代表函数 首地址.2,如何确定函数类型.

    

    //函数指针  是指向函数的指针.在定义函数指针的时候,要清楚自己要指向什么类型的函数.如果我们要定义一个函数指针,指向一个 具有两个整形参数,一个整形返回值的函数.(例如sum函数),使用以下代码定义函数指针

    //int sum(int x,int y)

    

//    int (*p)(int x,int y)=sum;//别忘引入头文件

//    

//    

//    //类型 变量=

//    //类型 int (*)(int x,int y)   //指向两个整型参数一个整型返回值的指针类型

//    //变量 p

//    // sum

//    

//    p=divide;//p只能指向 具有两个整型参数,一个整型返回值的函数.

//    

//    printf("%d %d",sum(10, 20),p(10,20));//p可以直接当函数使用

    

    

//    void (*p)()=printHello;

//    

//    p();//函数调用的语法 函数名(参数)

    

    

    

    

    //练习2:

    

//    int (*temp)(int x,int y)=NULL;

//    char a[]={0};

//    printf("请输入函数名:\n");

//    scanf("%s",a);

//    

//    if (strcmp("max", a)==0) {

//        temp=max;

//    }else if (strcmp("sum", a)==0){

//        temp=sum;

//    }

//    printf("%d ",temp(3,5));

    

    

    

    

//    printf("%d\n",getValue(10, 8, sum));

//    printf("%d\n",getValue(10, 8, minus));

//    printf("%d\n",getValue(10, 8, max));

//    printf("%d\n",getValue(10, 8, mul));

    

    

    

    

//    练习3:写⼀函数查找成绩90分以上的学员,使⽤回调函数在姓名后加⾼富

//   

    

    

    

    Student stu[5]={

        {"john",12,23,89},

        {"andy",15,25,72},

        {"john",12,23,89},

        {"john",12,23,89},

        {"john",12,23,89}

    };

    

    

    sortByScore(stu, 5, cmpScore);

    

    printStudent(stu, 5);

    

    

//    《第十一讲:函数指针》

//    课后题:

//    1.(***)随机生成一个 10 个元素的数组,找到 3 的倍数,并将其值修改成

//    0.(注意:修改数值使用回掉函数处理)

    

    

    

//    2. (***)有两个 10 个元素的数组,分别为 A B,编程实现相同位置的元素,

//    如果 B 的元素小于 A 的元素进行数值交换:(使用回调函数实现)

    

    

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值