(*p)()这应该是个函数指针。p=funa,p指向funa函数,x=sub(p,9,3)表示调用funa(9,3),所以x=12;
x+=sub(funb,8,3)同理可得x+=5,最终x=12+5=17.
函数指针我是在C++才学的,C语言的之前没看过。
你这程序本身就是一堆错误 ... 别说输出了 编译都过不了
你问问你们老师吧
你是不是要这样:
#include
int funa( int a, int b)
{ return a+b;}
int funb( int a, int b)
{ return a-b;}
int sub( int (*t)(int a, int b), int x, int y)
{ return((*t)( x,y));}
void main()
{
int x, (*p)(int a, int b);
p=funa;
x=sub(p,9,3);
x+=sub(funb, 8, 3);
printf("%d\n", x);
}
输出17