函数指针与函数类型
在C语言中,定义一个指针变量必须确定指针所指向的类型,如果要让指针指向一个函数,首先就得定义一个函数类型或者函数指针类型,因为C语言只提供了像int,char等基本数据类型,由于函数可以拥有不同的原型,所以我们必须自己定义函数类型或者函数的指针类型。
所以使用函数指针的过程应该是这样:
1.定义一个函数类型或者函数指针类型,这里的定义的函数类型假如跟printf函数的类型是一样的:
typedef int tFunc(const char *format, ...);
typedef int (*pFunc)(const char *format, ...);
//因为*运算符是从右往左结合,如果不加括号就是重定义了了一个返回值为int *的pFunc函数类型
//实际实况就是这样:
//typedef
(int *) pFunc(const
char *format, ...);
//跟上面一条语句的功能一样,只是重定义一个返回值为int *的函数类型。
2.用新的函数类型或者函数指针类型定义一个指针变量,方法有两种:
int main()
{
//第一种
tFunc *p = printf;
//第二种
pFunc q = printf;
//对指针初始化之后就可以使用了
p("hello, it is my first **** blog!\n");
q("hello, it is my first **** blog!\n");
return 0;
}
运行结果: