MST

星途 面试题库

面试题:C语言间接访问操作符与函数指针的复杂结合

编写一个函数 `int operate(int a, int b, int (*func)(int, int))`,该函数接受两个整数 `a` 和 `b`,以及一个函数指针 `func`,`func` 指向的函数接受两个 `int` 型参数并返回 `int` 型结果。`operate` 函数使用间接访问操作符调用 `func` 并返回其结果。另外,再定义两个简单的函数 `add(int a, int b)` 和 `subtract(int a, int b)` 分别用于加法和减法运算,在 `main` 函数中调用 `operate` 函数实现 `3 + 5` 和 `7 - 4` 的操作,并打印结果。请写出完整代码。
15.3万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试
#include <stdio.h>

// 加法函数
int add(int a, int b) {
    return a + b;
}

// 减法函数
int subtract(int a, int b) {
    return a - b;
}

// 操作函数
int operate(int a, int b, int (*func)(int, int)) {
    return (*func)(a, b);
}

int main() {
    // 调用operate函数实现3 + 5
    int result1 = operate(3, 5, add);
    printf("3 + 5 = %d\n", result1);

    // 调用operate函数实现7 - 4
    int result2 = operate(7, 4, subtract);
    printf("7 - 4 = %d\n", result2);

    return 0;
}