指向函数的指针及数组操作

有时候需要定义指向函数的指针,可以对一类拥有相同函数原型的函数进行调用。

#include <stdio.h>
#include <stdlib.h>

void intf(int (*fp)(), int a, int b);
int f1(int a, int b); // +
int f2(int a, int b); // -
int f3(int a, int b); // *
int f4(int a, int b); // /

int main()
{
    int ix=0;
    int a=1;
    int b=2;

    int (*fList[4])(int , int) = {f1, f2, f3 ,f4};
    for( ; ix<4; ix++)
    {
        intf((*fList[ix]), a, b);
//        (*fList[ix])(a,b);
    }

    return 0;
}

void intf(int (*fp)(), int a, int b)
{
    int lRc;
    lRc = (*fp)(a,b);
    printf("lRc = %d\n\n",lRc);
}


int f1(int a, int b)
{
    printf("Opretion: +");
    printf("\t%d + %d \n", a, b);
    return a+b;
}
int f2(int a, int b)
{
    printf("Opretion: -");
    printf("\t%d - %d \n", a, b);
    return a-b;
}
int f3(int a, int b)
{
    printf("Opretion: *");
    printf("\t%d * %d \n", a, b);
    return a*b;
}
int f4(int a, int b)
{
    printf("Opretion: /");
    printf("\t%d / %d \n", a, b);
    if(b)
        return a/b;
    else
        return -1;
}

posted on 2011-10-16 18:26  jay.windows  阅读(229)  评论(0编辑  收藏  举报

导航