c语言编程问题,请教高手大哥,下面的程序什么意思?输出结果是多少?还望详细介绍一下,谢谢啦!*^_^*

下面程序的输出结果是:
#include <stdio.h>
funa( int a, int b)
{ return a+b;}
funb( int a, int b)
{ return a-b;}
sub( int (*t)(), int x, int y)
{ return((*t)( x,y));}
main()
{ int x, (*p)();
p=funa;
x=sub(p,9,3);
x+=sub(funb, 8, 3);
printf("%d\n", x);
}

(*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语言的之前没看过。追问

我这正在学c语言,c++没学呢!不过还是很谢谢你。

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-08-26
你这程序本身就是一堆错误 ... 别说输出了 编译都过不了
第2个回答  2014-08-26
你问问你们老师吧
第3个回答  推荐于2016-09-13
你是不是要这样:
#include <stdio.h>
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本回答被提问者采纳
相似回答