首页  /  编程问答  /  什么是函数指针  /  

什么是函数指针

所谓函数指针,本质是一个指针,是指向函数的指针,即通过一个指针就可以调用一个函数。下面我们来举例为大家讲解,类似的,基本语法我们知道一个指针可以指向它同类型的变量,函数指针也是,函数指针所定义类型和原函数的类型要一样,包括参数个数、类型,返回值类型,这样才能一致,才能赋值,让这个函数指针指向原函数。


比如有一个函数:

int Max(int x,int y)
{
    if(x>y)
        return x;
    return y;
}

这是一个找两个数最大值函数,如果我们想通过一个函数指针来指向它,那么我们需要这么定义一个函数指针:

int (*p)(int x,int y);  //定义函数指针

这个指针叫p,它就是一个函数指针,即可以指向一个参数有两个整型变量,返回值也为整型的函数,那很明显和前面定义的Max函数类型一样,那么就可以做指向的赋值了,如下:

p=Max; //使p指向原函数

接下来如果我们要使用这个Max函数,用指针的话可以这样调用:

p(3,5);//通过函数指针调用

即可调用函数swap,并将3和5两个实参传了进去,将会运行得到5的结果。


大家可以上机实验完成!

完整代码如下:

#include<stdio.h>
int Max(int x,int y)
{
    if(x>y)
        return x;
    return y;
}
int main()
{
    int a;
    int (*p)(int x,int y);
    p=Max;
    a=p(3,5);
    printf("%d\n",a);
    return 0;    
}



本文固定URL:https://www.dotcpp.com/qa/9

编程杂谈
编程基础
知识答疑