Obsession
1162732624@qq.com
20160720
多交流如有误请各位技术前辈指正
函数指针:
函数指针是存放函数的地址的指针,函数地址是一个函数的入口地址。
注:函数名就是函数的入口地址(非常重要)
当一个函数指针指向了一个函数,就可以通过这个指针来调用该函数,可以将函数作为参数传递给函数指针。
函数指针声明方式:
<数据类型> (*<函数的指针名称>)(<参数说明列表>)
注:
数据类型:函数指针所指向的函数的返回类型
函数指针名称:符合标识符命名规则的名字
参数说明列表:应该和函数指针所指向的函数的形参说明保持一致
例如下面一段程序:
普通函数指针:
#include <stdio.h>
int add(int a,int b)
{
return (a+b);
}
int main(int argc, const char *argv[])
{
int sub;
int (*p)(int,int);
p = add;
sub = (*p)(1,2);
printf("%d\n%p\n",sub,p);
return 0;
}
指针函数指针:
#include <stdio.h>
#include <string.h>
char *mystrcpy(char *arr1,char *arr2)
{
char *p;
p = strcpy(arr1,arr2);
return p;
}
int main(int argc, const char *argv[])
{
char ar1[] = "hello";
char ar2[10];
char *(* pFunc)(char *,char *);
pFunc = mystrcpy;
(*pFunc)(ar2,ar1);
printf("string:%s\n",ar2);
return 0;
}