函数指针是个指针,它指向某一个具体函数或某一类函数。指针函数是个返回值为指针的函数。下面通过具体例子分析二者:
函数指针:
#include <stdio.h>typedef int (*func)(int a,int b);
int add(int a,int b)
{
return (a+b);
}
int sub(int a,int b)
{
return(a-b);
}
int math(func func_p,int a,int b)
{
return (func_p(a,b));
}
int main(void)
{
int a= 8,b = 4;
printf("math = %d\r\n",math(add,a,b));
printf("math = %d\r\n",math(sub,a,b));
return 0;
}
指针函数:
#include <stdio.h>
int *GetWeekDay(int i,int j)
{
int GetWeekDay[][2] =
{
{1,2},
{3,4},
{5,6}
};
return &GetWeekDay[i][j];
}
int main(void)
{
int a = 0,b = 0;
for(a = 0; a < 3; a++)
{
for(b = 0; b< 2; b++)
{
printf("%d\t",*GetWeekDay(a,b));
}
printf("\r\n");
}
return 0;
}