指向函数的指针

指向函数的指针

#include <stdio.h>

int square(int num)
{
    return num * num;
}

int main(void)
{
    int num;
    
    int (*fp)(int);
    printf("please input a number:");
    scanf("%d", &num);
    fp = square;
    printf("fp = %p, %d
", fp, (*fp)(num));
    
    return 0;
}

函数指针数组

#include <stdio.h>

void function1(int);
void function2(int);
void function3(int);

int main(void)
{
    //根据优先级,f[3]是一个数组,*f[3]说明数组元素都是指针类型,3个元素都是指向参数是int返回类型是void的函数
    void (*f[3])(int) = {function1, function2, function3};
    int choice;
    
    printf("输入一个数:范围[0-2]");
    scanf("%d", &choice);
    while (choice >= 0 && choice <= 2) {
        (*f[choice])(choice);
        printf("输入一个数:范围[0-2]");
        scanf("%d", &choice);
    }
    printf("程序运行结束。
");
    
    return 0;
}
void function1(int choice)
{
    printf("输入了%d,运行了function1函数。
", choice);
}
void function2(int choice)
{
    printf("输入了%d,运行了function2函数。
", choice);
}
void function3(int choice)
{
    printf("输入了%d,运行了function3函数。
", choice);
}

原文地址:https://www.cnblogs.com/2018jason/p/12931408.html