张春 发表于 2024-6-11 22:15:28

C语言——函数指针

一、函数指针的界说

函数指针是指向函数的指针变量,可以用来动态调用差别的函数。使用函数指针的一般步骤如下:
1、界说函数指针类型:typedef 返回值类型 (*指针变量名)(参数列表);
2、声明函数指针变量并赋值:指针变量名 = 函数名;
3、通过函数指针调用函数:(*指针变量名)(参数);
代码示例:
#include <stdio.h>
int myFunction(int x)
{
    return x*x;
}
void print()
{
    printf("hello world\n");
}
int main()
{
    int (*a)(int);
    a = &myFunction;

    void (*b)(void);
    b = &print;

    int result = a(5);
    printf("Result:%d\n",result);
    b();
    return 0;
} 运行效果:
Result:25
hello world 二、函数指针习题

界说一个指向函数的指针,该函数有一个整型参数并返回一个整型数;
int(*a)(int); 三、函数指针进阶

指针数组和函数指针相结合。 指针数组指向差别的函数,通过引用数组中的指针元素,实现一个数组函数控制多个函数的功能。
代码示例: 
#include <stdio.h>
int add(int a,int b)
{
    return a+b;
}

int substract(int a,int b)
{
    return a-b;
}

double multial(int a,double b)
{
    return a*b;
}
int main()
{
    int (*a)(int,int);
    a = &add;
    a = &substract;
    double (*b)(int ,double);
    b = &multial;
    printf("%d\n",a(5,4));
    printf("%d\n",a(5,4));
    printf("%.1f\n",b(5,0.2));
    return 0;
} 运行效果:我们界说了一个包罗两个函数指针的指针数组a,分别指向add和subtract函数。通过调用a和a,我们可以分别实现加法和减法运算。
9
1
1.0
 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数;
int(*a)(int)
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: C语言——函数指针