C语言 函数指针

函数指针

  • 本质是一个指针,这个指针指向一个函数的入口地址(用函数名表示)

  • 函数指针可以作为参数传递给另一个函数(回调函数),并在这个函数里调用指针所指向的函数

  • 回调函数:一个通过函数指针调用的函数。

函数指针的声明和初始化

  • 声明:数据类型 (*指针变量名)(参数列表)

    1.数据类型和(参数列表)合起来代表某类函数

    2.数据类型是这类函数的返回类型

    3.参数列表是这类函数的参数列表

示例

int (*p)(int,int);
p=max  //int max(int,int);
​
double (*p)(double,int);
p=timer  //double timer(double,int);

函数指针作为函数的参数

示例

#include
​
int f1(int x);
int f2(int x);
int text(int x,int (*p)(int));
​
int main()
{
    int x;
    scanf("%d",&x);
    
    int (*p1)(int x);  
    p1=f1;  //定义并声明f1的函数指针p1
    int (*p2)(int x);
    p2=f2;  //定义并声明f2的函数指针p2
    
    text(x,p1);  //在text中调用f1
    text(x,p2);  //在text中调用f2
    
    return 0;
}
​
int f1(int x)
{
    return x+1;
}
​
int f(int x)
{
    return x+2;
}
​
int text(x,int (*p)(int))
{
    int t;
    t=p(x);
    
    return t;
}

你可能感兴趣的:(c语言)