📅  最后修改于: 2023-12-03 14:59:38.990000             🧑  作者: Mango
在C语言中,指针是一个非常强大的工具,可以操作内存中的数据,因此是编写高效代码的关键。在指针的基础上,还存在一些更加高级的指针概念,这些概念在某些情况下可以提高代码的效率和可读性。本文将介绍C语言高级指针问题9。
在指针中,有一种指针称为“函数指针”。函数指针指向的是函数,可以像指针一样传递给其他函数,也可以用来调用函数。
本问题中,请使用函数指针实现一个简单的计算器程序,可以实现加减乘除四则运算。程序需要从命令行输入两个数字和一个运算符,然后输出计算结果。
#include <stdio.h>
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) {
return a / b;
}
int main() {
int a, b;
char op;
int (*func)(int, int);
printf("Please enter two numbers and an operator:\n");
scanf("%d %d %c", &a, &b, &op);
switch (op) {
case '+':
func = add;
break;
case '-':
func = sub;
break;
case '*':
func = mul;
break;
case '/':
func = div;
break;
default:
printf("Invalid operator\n");
return 1;
}
int result = func(a, b);
printf("Result: %d\n", result);
return 0;
}
在main函数中,我们首先定义了两个变量a和b,分别表示输入的两个数字;定义了一个字符变量op,表示输入的运算符。然后定义了一个函数指针变量func,用来指向四个不同的函数。
接着,我们使用scanf函数从命令行中读取输入的数字和运算符,并根据运算符的不同将函数指针func指向对应的函数。
最后,我们使用函数指针调用相应的函数,得到计算结果,并输出到命令行中。
本文介绍了C语言高级指针问题9,通过使用函数指针实现了一个简单的计算器程序。函数指针是一种非常强大的指针类型,可以用来实现很多高级的功能。在实际编程中,需要灵活运用函数指针来提高代码的效率和可读性。