函数指针数组

#include <stdio.h>

typedef int   FuncType(int,int);  //函数
typedef FuncType* FuncPointType;  //函数指针
typedef FuncPointType ArrType[2];  //函数指针数组

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

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

int main(void)
{
    FuncPointType arr[2] = {Add,Sub};
    printf ("result = %d
",arr[1](3,4));
    ArrType* pa = &arr;    
    /*
        pa = &arr;
        *pa = *&arr;
        *pa = arr
        arr[0] = *(*pa+0);    
    */
    printf ("result = %d
",(*(*pa+0))(5,6));    //等价于arr[0](5,6)
    return 0;
}
原文地址:https://www.cnblogs.com/xiaozoui11cl/p/13228491.html