MST

星途 面试题库

面试题:C语言间接访问操作符与函数指针数组

定义一个函数指针数组,每个函数指针指向一个返回`int`类型且接受`int`类型参数的函数。描述在通过间接访问操作符调用这些函数时,需要注意哪些关键要点,包括函数指针数组的初始化、调用时的参数传递以及间接访问操作符的正确应用,并编写完整的代码示例。
18.1万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试
  1. 关键要点
    • 函数指针数组的初始化:确保数组中的每个元素都正确指向一个符合要求(返回int类型且接受int类型参数)的函数。可以在声明时初始化,也可以后续逐个赋值。
    • 调用时的参数传递:传递给函数指针所指向函数的参数类型和数量必须与函数定义一致,这里是传递一个int类型参数。
    • 间接访问操作符的正确应用:使用(*function_pointer)(arguments)的形式来调用函数指针所指向的函数,其中function_pointer是数组中的函数指针元素,arguments是传递的参数。
  2. 代码示例
#include <stdio.h>

// 定义几个符合要求的函数
int add_one(int num) {
    return num + 1;
}

int multiply_by_two(int num) {
    return num * 2;
}

int main() {
    // 定义函数指针数组并初始化
    int (*func_array[2])(int) = {add_one, multiply_by_two};

    // 调用函数指针数组中的函数
    for (int i = 0; i < 2; i++) {
        int result = (*func_array[i])(5); // 传递参数5
        printf("Function %d result: %d\n", i, result);
    }

    return 0;
}