面试题答案
一键面试#include <stdio.h>
// 定义函数类型
typedef void (*FunctionPtr)(int);
// 示例函数1
void function1(int num) {
printf("调用了function1,参数为:%d\n", num);
}
// 示例函数2
void function2(int num) {
printf("调用了function2,参数为:%d\n", num);
}
// 示例函数3
void function3(int num) {
printf("调用了function3,参数为:%d\n", num);
}
int main() {
// 定义函数指针数组
FunctionPtr functionArray[3] = {function1, function2, function3};
int choice, param;
printf("请输入选择(0 - 2):");
scanf("%d", &choice);
if (choice < 0 || choice > 2) {
printf("无效的选择\n");
return 1;
}
printf("请输入参数:");
scanf("%d", ¶m);
// 根据用户选择调用相应的函数
functionArray[choice](param);
return 0;
}
上述代码实现了以下功能:
- 定义了一个函数指针类型
FunctionPtr
,它指向返回值为void
,参数为int
的函数。 - 定义了三个符合上述类型的示例函数
function1
、function2
和function3
。 - 在
main
函数中,创建了一个包含三个函数指针的数组functionArray
,并将其初始化为指向上述三个函数。 - 根据用户输入的选择(0 - 2),调用相应的函数,并传入用户输入的参数。
请注意,在实际应用中,可能需要对用户输入进行更全面的错误处理,例如输入非数字字符的情况等。上述代码仅为了演示核心功能。