#include <stdio.h>
#include <math.h>
// 定义函数
int square(int num) {
return num * num;
}
int cube(int num) {
return num * num * num;
}
int squareRoot(int num) {
return (int)sqrt(num);
}
int main() {
// 定义函数指针数组
int (*funcPtrArray[3])(int);
// 初始化函数指针数组
funcPtrArray[0] = square;
funcPtrArray[1] = cube;
funcPtrArray[2] = squareRoot;
int input = 5;
// 调用函数指针所指向的函数
for (int i = 0; i < 3; i++) {
if (funcPtrArray[i]) {
int result = funcPtrArray[i](input);
if (i == 0) {
printf("平方结果: %d\n", result);
} else if (i == 1) {
printf("立方结果: %d\n", result);
} else {
printf("开方结果: %d\n", result);
}
} else {
printf("函数指针未正确初始化\n");
}
}
return 0;
}
代码说明:
- 定义函数:定义了三个函数
square
(求平方)、cube
(求立方)、squareRoot
(求开方),它们都接受一个 int
类型参数并返回 int
类型结果。
- 定义函数指针数组:
int (*funcPtrArray[3])(int);
定义了一个包含三个元素的函数指针数组,每个函数指针指向一个接受 int
参数并返回 int
类型的函数。
- 初始化函数指针数组:将每个函数指针指向对应的函数。
- 调用函数:通过遍历函数指针数组,调用每个函数指针所指向的函数,并输出结果。同时在调用前检查函数指针是否正确初始化,以处理可能的错误。