函数指针

来源:互联网 发布:淘宝商机助理下载 编辑:程序博客网 时间:2024/06/08 03:40


    //函数指针

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

    

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

    

    //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
原创粉丝点击