c语言函数指针的用法是什么

894
2023/12/26 9:53:03
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

C语言函数指针是指向函数的指针变量,它可以指向一个函数的首地址。函数指针的用法主要有两种:

  1. 函数指针作为参数:函数指针可以函数的参数,用来在函数调用时传递函数的地址,从而达到在函数中调用其他函数的目的。这样可以实现一些高级的函数功能,比如回调函数。例如:
#include <stdio.h>

void print(int num) {
    printf("%d\n", num);
}

void iterate(int start, int end, void(*func)(int)) {
    for(int i = start; i <= end; i++) {
        func(i);
    }
}

int main() {
    iterate(1, 5, print);
    
    return 0;
}
  1. 函数指针作为返回值:函数指针也可以函数的返回值,用来返回一个指向函数的指针。这样可以实现根据不同的条件返回不同的函数地址。例如:
#include <stdio.h>

int add(int a, int b) {
    return a + b;
}

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

int multiply(int a, int b) {
    return a * b;
}

int divide(int a, int b) {
    return a / b;
}

int (*getOperation(char op))(int, int) {
    switch(op) {
        case '+':
            return add;
        case '-':
            return subtract;
        case '*':
            return multiply;
        case '/':
            return divide;
        default:
            return NULL;
    }
}

int main() {
    int a = 10, b = 5;
    char op = '+';
    
    int (*operation)(int, int) = getOperation(op);
    
    if(operation != NULL) {
        int result = operation(a, b);
        printf("%d\n", result);
    } else {
        printf("Invalid operator\n");
    }
    
    return 0;
}

这样,根据不同的操作符,可以返回对应的函数地址,从而实现不同的运算。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: c语言strcpy的使用方法是什么