码迷,mamicode.com
首页 > 其他好文 > 详细

函数指针

时间:2014-12-27 11:32:04      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:

/*Author:Choas Lee

*Date:2012-02-28

*/

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

float add(float a,float b){return a+b;}

float minus(float a,float b){return a-b;}

float multiply(float a,float b){return a*b;}

float divide(float a,float b){return a/b;}

//该函数的返回值是一个函数
float(* FunctionMap(char op) )(float,float) 

{
    switch(op)

    {

    case ‘+‘:

        return add;

        break;

    case ‘-‘:

        return minus;

        break;

    case ‘*‘:

        return multiply;

        break;

    case ‘\\‘:

        return divide;

        break;

    default:

        exit(1);

    }

}



int main()

{

    float a=10,b=5;

    char ops[]={‘+‘,‘-‘,‘*‘,‘\\‘};

    int len=strlen(ops);

    int i=0;

    float (*returned_function_pointer)(float,float);//定义了一个函数指针

    for(i=0;i<len;i++)

    {

        returned_function_pointer=FunctionMap(ops[i]);

        printf("the result caculated by the operator %c is %f\n",ops[i],returned_function_pointer(a,b));

    }

    return 0;

}

输出:

the result caculated by the operator + is 15.000000
the result caculated by the operator - is 5.000000
the result caculated by the operator * is 50.000000
the result caculated by the operator \ is 2.000000

参考:

1.http://hipercomer.blog.51cto.com/4415661/792301

函数指针

标签:

原文地址:http://my.oschina.net/itfanr/blog/361125

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!