指针函数:返回值为指针的函数
返回值 * 函数名(形参)
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 ",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 ",ret); for(i = 0 ; i < 2 ; i++) { ret = funcp[i](a,b); printf("%d ",ret); } exit(0); }