C语言用函数指针实现一个特别的计算器
1. 什么是函数指针
在C语言中,函数指针是指向函数的指针变量,也就是说,函数指针存储的是一个函数的地址。通过函数指针,我们可以直接调用该函数,就像调用普通变量一样,这样可以使程序更加灵活。
定义一个函数指针需要注意两点:
- 函数指针的声明方式与普通指针有所不同,其声明格式为 返回类型 (*指针变量名)(参数列表)
;
- 在定义函数指针时,需要将指针变量指向一个函数,即 指针变量名 = 函数名
。
2. 实现一个特别的计算器
下面,我们通过函数指针,来实现一个特别的计算器,使得用户可以通过输入加减乘除符号,选择不同的操作,并进行相应的运算。
首先,我们需要定义四个函数,分别实现加减乘除四种运算,代码示例如下:
int add(int a, int b) {
return a + b;
}
int sub(int a, int b) {
return a - b;
}
int mul(int a, int b) {
return a * b;
}
int div(int a, int b) {
if (b == 0) {
printf("除数不能为0!\n");
return -1;
}
return a / b;
}
然后,我们定义一个函数指针类型,用于指向这四个函数:
typedef int (*pfunc)(int, int);
其中,*pfunc
表示这是一个函数指针类型,int
表示函数返回值,(int, int)
表示函数参数列表。
接着,我们定义一个calc()
函数,用于选择运算符号,并进行相应的计算:
void calc(int a, int b, char op) {
pfunc p = NULL; // 定义函数指针
switch(op) {
case '+': p = add; break;
case '-': p = sub; break;
case '*': p = mul; break;
case '/': p = div; break;
default: {
printf("无效的运算符!\n");
return;
}
}
int result = p(a, b); // 通过函数指针调用函数,进行计算
printf("%d %c %d = %d\n", a, op, b, result);
}
在calc()
函数中,我们首先需要定义一个函数指针p
,并根据用户输入的运算符号,将指针指向相应的函数。然后,我们通过函数指针调用函数,并将计算结果存储在result
变量中。最后,我们打印出运算表达式及结果。
下面,我们来做两个示例:
示例1:调用加法运算
#include <stdio.h>
int main() {
int a = 10, b = 20;
char op = '+';
calc(a, b, op);
return 0;
}
输出结果为:
10 + 20 = 30
示例2:调用除法运算
#include <stdio.h>
int main() {
int a = 10, b = 0;
char op = '/';
calc(a, b, op);
return 0;
}
输出结果为:
除数不能为0!
通过以上示例说明,我们可以看到,使用函数指针可以使得程序更加灵活和可扩展。通过定义不同的函数,并将函数指针指向不同的函数,我们可以实现不同的操作,从而使得程序更加强大。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言用函数指针实现一个特别的计算器 - Python技术站