函数指针
如果在程序中定义了一个函数,那么在编译时系统就会为这个函数代码分配一段存储空间,这段存储空间的首地址称为这个函数的地址。而且函数名表示的就是这个地址。既然是地址我们就可以定义一个指针变量来存放,这个指针变量就叫作函数指针变量,简称函数指针。
普通函数名的理解--函数指针
函数名也称为函数的指针,所以c语言中函数名就是一个指针。
函数指针 两种表示:
int func(char,double); // 这是一个普通函数,func可以理解为指针
int (*p)(char,double); //指向一个以上函数的指针
函数指针:指针,指向的类型是一个函数
int add(int a,int b)
{
return a + b;
}
int (*p)(int ,int);//p是一个指针变量,指向的函数类型,函数必须返回值是int ,参数的顺序int,int
p = add;//地址
int a = (*p)(10,10); //a得到的值是20
指针函数
指针函数,简单的来说,就是一个返回指针的函数,其本质是一个函数,而该函数的返回值是一个指针。
声明格式为:*类型标识符 函数名(参数表)
指针函数是指带指针的函数,即本质是一个函数,函数返回类型是某一类型的指针。
类型标识符 *函数名(参数表)
int *f(x,y);
首先它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变量来接受,也就是说,指针函数一定有函数返回值,而且,在主调函数中,函数返回值必须赋给同类型的指针变量。
表示:
float *fun(a)
{
//函数内容
return
}
int main()
{
float *p;
p = fun(a);
}