指针函数
首先我们先来看一个普通的整型函数,声明为:
int func(void);
前面的int 是返回值类型,func是函数名,小括号里是参数,当然这里没传参数。理解了这里之后再看到我们的指针函数。
指针函数从字面上来理解其本质是一个返回值是指针的函数,
其声明的格式为:
int *func(void);
前面的int *是返回值类型,返回一个int *类型的指针,func是函数名,指针函数都是这样理解的。记得前面要加上星号才是它的返回值类型,比如上面的int *,而不是int ,要切记int *是一个整体做为函数的返回值类型!
函数指针
顾名思义就是一个指向函数入口地址的指针
函数指针的声明格式为
int (*func)(void);
函数指针的初始化跟数组类似,比如add是一个函数,其声明格式为int add(int a,int b);这时候要定义一个函数指针指向这个函数,应该这个定义:int (*func)(int a,int b),然后对函数指针初始化:func = add,引用函数指针:func(3,2),
例子:
#include <stdio.h>
int add (int a, int b)
{
return (a+b);
}
int main()
{
int (*func)(int a, int b);
int rv;
func = add;
rv = func(3,5);
printf("rv = %d\n", rv);
return 0;
}