能解释一下吗
#include <stdio.h>
int inc(int a)
{
return(++a);
}
int multi(int*a,int*b,int*c)
{
return(*c=*a**b);
}
typedef int(FUNC1)(int in); \\
typedef int(FUNC2) (int*,int*,int*);\\这里两句怎么解释呀。。
void show(FUNC2 fun,int arg1, int*arg2)
{
INCp=&inc; \\这个是什么意思。。
int temp =p(arg1); \\可以这样定义吗?p(arg1)是什么?
fun(&temp,&arg1, arg2);
printf( "%d\n ",*arg2);
}
main()
{
int a;
show(multi,10,&a); \\这里也不懂,multi不知道怎么回事
return 0;
}
答:110
这是网上搜索到的一道面试题,盼大哥们帮忙。。
[解决办法]
void show(FUNC2 fun,int arg1, int*arg2)
{
INCp=&inc; \\这个是什么意思。。
int temp =p(arg1); \\可以这样定义吗?p(arg1)是什么?
fun(&temp,&arg1, arg2);
printf( "%d\n ",*arg2);
}
==》
void show(FUNC2 fun,int arg1, int*arg2)
{
FUNC1 p=&inc; \\定义函数指针变量,并赋值为inc 函数入口
int temp =p(arg1); \\p(arg1)就是 inc(arg1)
fun(&temp,&arg1, arg2);
printf( "%d\n ",*arg2);
}
main 中的也类似 ~