MST

星途 面试题库

面试题:C语言函数指针中等难度题目

请定义一个函数指针,该指针指向的函数有两个int类型参数并返回一个int类型值,然后通过该函数指针调用一个已定义的满足此参数和返回值要求的函数 `int add(int a, int b) { return a + b; }`。
25.7万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试
#include <iostream>

// 定义一个函数指针类型
typedef int (*FuncPtr)(int, int);

// 已定义的函数
int add(int a, int b) {
    return a + b;
}

int main() {
    // 定义函数指针变量,并指向add函数
    FuncPtr ptr = add;
    // 通过函数指针调用add函数
    int result = ptr(3, 5);
    std::cout << "调用结果: " << result << std::endl;
    return 0;
}

解释:

  1. 首先使用typedef定义了一个函数指针类型FuncPtr,它指向的函数有两个int类型参数并返回一个int类型值。
  2. 然后定义了目标函数add
  3. main函数中,定义了一个FuncPtr类型的指针变量ptr,并使其指向add函数。
  4. 最后通过函数指针ptr调用add函数,并输出结果。