本文将给大家带来函数类型和函数指针的使用方法以及概念介绍。
函数类型可能很多人都不是很清楚,大家都只知道变量有类型,但是却没有听过函数的类型。
C语言中的函数有自己特定的类型
函数类型由返回值,参数类型和参数个数共同决定。
函数int fun(int a)的函数类型为 int(int a)
函数float fun(int a)的函数类型为float(int a)
函数指针顾名思义就是一个指向函数的指针,和其他类型的指针其实没有什么区别,只不过是指向的类型不同而已。
函数名是执行函数体的入口地址。
通过函数指针可以得到函数的入口地址,所以通过函数指针就可以调用到对应的函数了。
示例:
#include <stdio.h>
typedef int(FUNC)(int, int);
int fun(int a, int b)
{
return a + b;
}
int main(void)
{
int (*p)(int i, int j);
FUNC *p1 = fun;
p = fun;
printf("%p\n", p);
p(1,2);
p1(3, 4);
return 0;
}
可以通过函数指针指向函数,调用函数指针时跟函数的调用是类似的。直接使用指针名就可以调用到函数了。
函数指针其实和普通的指针是一样的,只是指向不同而已,大家不用害怕。