在C语言中,算术运算符本身不能直接存储在数组中,因为它们是特殊的符号,而不是可以直接存储在内存中的值。然而,我们可以使用函数指针数组来间接地实现这一目的。以下是一个示例,展示了如何使用函数指针数组来存储和调用基本的算术运算函数。
以下是一个简单的示例,展示了如何使用函数指针数组来存储和调用加、减、乘、除运算。
#include <stdio.h>
// 定义算术运算函数
int add(int a, int b) {
return a + b;
}
int subtract(int a, int b) {
return a - b;
}
int multiply(int a, int b) {
return a * b;
}
int divide(int a, int b) {
if (b == 0) {
printf("Error: Division by zero\n");
return 0;
}
return a / b;
}
int main() {
// 定义函数指针数组
int (*operations[])(int, int) = {add, subtract, multiply, divide};
int a = 10, b = 5;
int choice;
printf("Enter operation (0: add, 1: subtract, 2: multiply, 3: divide): ");
scanf("%d", &choice);
if (choice >= 0 && choice < 4) {
int result = operations[choice](a, b);
printf("Result: %d\n", result);
} else {
printf("Invalid choice\n");
}
return 0;
}
add
, subtract
, multiply
, divide
分别实现了加、减、乘、除运算。operations
是一个函数指针数组,每个元素指向一个算术运算函数。divide
函数中检查除数是否为零,并给出错误提示。main
函数中检查用户输入是否在有效范围内,如果不是则提示无效输入。通过这种方式,可以灵活地管理和调用不同的算术运算函数,提高代码的可维护性和扩展性。
领取专属 10元无门槛券
手把手带您无忧上云