函数指针及其应用

//函数指针
/*#include<stdio.h>
 
void f(void)
{
    printf("in f()\n");
}

int main(void)
{
    int i=0;
    int *p=&i;
    *p=20;//运用指针修改i的值
    void (*pf)(void) = f; //指针函数
    f();            //int f()
    (*pf)();        //int f()
    
                    
    return 0;
}
*/
/*
#include<stdio.h>

void f(int i)
{
    printf("int f(),%d\n",i);
}
 
void g(int i)
{
    printf("int g(),%d\n",i);
}

void h(int i)
{
    printf("int h(),%d\n",i);
}

void k(int i)
{
    printf("int k(),%d\n",i);
}
 
int main(void)
{
    int i=0;
    scanf("%d",&i);
    if(i==0)    //方一
    {
        f(0);
    }else if(i==1)
    {
        g(0);
    }


switch(i)    //方二
{
    case 0:f(0);break;
    case 1:g(o);break;
    case 2:h(0);break;
}
 

    void (*fa[])(int)={f,g,h,k};
    if(i>=0&&i<sizeof(fa)/sizeof(fa[0]))
    {
        (*fa[i])(0);
    }//一般用于根据用户输入来判断做什么事
    return 0;
}
*/
//来的实的
#include<stdio.h>
int plus(int a,int b)
{
    return a+b;
}
 
int minus(int a,int b)
{
    return a-b;
}
 
void cal(int (*f)(int,int))
{
    printf("%d\n",(*f)(2,3));
}
 
int main(void)
{
    cal(plus);
    cal(minus);
    
    return 0;
}
 

猜你喜欢

转载自www.cnblogs.com/lijianmin6/p/10367325.html