指针函数与函数指针

指针函数:返回值为指针的函数

返回值 * 函数名(形参)

eg:int * fun(int);

 

函数指针:指针指向函数

类型 (*指针类型)(形参//注意括号

eg:int (*p)(int)

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

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


int main(void)
{
        int a = 3 ,b = 5 ; 
        int ret ;
        int (*p)(int , int );//指向格式为int xxx(int, int) 的函数入口地址;
        ret = add( a , b );
        printf("%d\n",ret);
        exit(0);
}

 函数指针数组:

类型 (*数组名[下标])(形参)//注意括号

eg: int (*arr[N])(int);

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

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

int sub(int a ,int b)
{
        return a-b ;
}

int main(void)
{
        int a = 3 ,b = 5 ; 
        int ret , i ; 
//      int (*p)(int , int );//指向格式为int xxx(int, int) 的函数入口地址;
//      int (int,int) *funcp[2];//定义一个指针数组,内部元素是指针,指向格式为int xxx(int,int)的函数
        int (*funcp[2])(int,int);
        funcp[0]=add;
        funcp[1]=sub;
        //ret = add( a , b );
        //printf("%d\n",ret);
        for(i = 0 ; i < 2 ; i++)
        {   
                ret = funcp[i](a,b);
                printf("%d\n",ret);
        }   
        exit(0);
}

 

posted @ 2016-02-26 10:32  muzihuan  阅读(211)  评论(0编辑  收藏  举报