前言
什么是函数指针:
函数指针的定义形象点来说,就是用一个指针变量代替原函数中的函数名位置。
在定义函数指针时请注意:
函数指针和它指向的函数的参数个数和类型都应该是—致的;
函数指针的类型和函数的返回值类型也必须是一致的。
函数指针的赋值:
函数名和数组名一样代表了函数代码的首地址,因此在赋值时,直接将函数指针指向函数名就行了
例如:
函数指针:int (*p)(int);
指针指向的是一个函数,这个函数的返回值是int,形参是int。
程序源码
/* 函数指针 int (*p) (int ,..); */
#include <stdio.h>
/*函数声明*/
int add(int a,int b);
int sub(int a,int b);
int main()
{
int a = 3,b = 5;
int ret, ret1;
//定义函数指针,指向的函数的返回值是int,两个形参都是int
int (*q)(int,int);
int (*p)(int,int);
p = add; //函数名就是函数的入口地址
q = sub;
// ret = add(a,b);
ret = p(a,b);
ret1 = q(a,b);
printf("%d\n ",ret);
printf("%d\n ",ret1);
return 0;
}
/*函数定义*/
int add(int a,int b)
{
return a+b;
}
int sub(int a,int b)
{
return a-b;
}