所以我正在练习指向函数的指针,并尝试制作这个简单的程序,这是它的一个片段。在分配地址时,它仍然给我一个“无效的左值”的错误。例如,funcptr = & addnum。另外我不禁要问,这有什么用?调用函数不是很简单吗?或者我误解了一些东西无效的左值,指向函数的指针,这是什么使用?它更简单地调用函数
#include <stdio.h>
int arithnum(int base);
int addnum(int base,int new);
int subnum(int base,int new);
int mulnum(int base,int new);
int divnum(int base,int new);
typedef int *ptrdef(int,int);
int arithnum(int base)
{
char operator;
int operand;
ptrdef funcptr;
printf("Enter operator: ");
scanf("\n%c",&operator);
printf("Enter second operand: ");
scanf("%d",&operand);
switch(operator)
{
case '+':
funcptr = &addnum;
break;
case '-':
funcptr = &subnum;
break;
case '*':
funcptr = &mulnum;
break;
case '/':
funcptr = &divnum;
break;
}
return funcptr(base,operand);
}
[什么是函数指针用于...](http://stackoverflow.com/questions/1758564/what-are-function-pointers-used-for-and-how-would-i-use-them )。 – DCoder
谢谢你!得到它了。 – latenightcode