所以我正在練習指向函數的指針,並嘗試製作這個簡單的程序,這是它的一個片段。在分配地址時,它仍然給我一個「無效的左值」的錯誤。例如,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