函数指针

函数指针

基本概念

什么是函数指针呢?

本质上还是一个指针,用来指向一个函数的地址

定义一个函数指针类型

typedef int(*FUNC)(int,int);

定义了一个函数指针类型,类型名称为FUNC,该函数指针类型的变量可以指向这么一类函数:返回值为int,形参为int,int

定义函数指针变量

FUNC f;

注意:函数的名称即为函数的地址

指针函数

指针函数是返回值为指针的函数,不要混淆

使用场景

例子:调用随机函数

#include 
#include 
#include 

typedef int (*Func)(int, int);

int max(int num1, int num2);

int min(int num1, int num2);

int add(int num1, int num2);

int drop(int num1, int num2);


int main() {
    Func funcs[] = {max, min, add, drop};
    srand(time(NULL));
    int rand_num = rand() % 4;
    int result = funcs[rand_num](10, 5);
    printf("result:%d\n",result);
    return 0;
}


int max(int num1, int num2) {
    return num1 > num2 ? num1 : num2;
}

int min(int num1, int num2) {
    return num1 > num2 ? num2 : num1;
}

int add(int num1, int num2) {
    return num1 + num2;
}

int drop(int num1, int num2) {
    return num1 - num2;
}

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