首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请帮小弟我解释一下

2012-02-24 
请帮我解释一下intinc(inta){return(++a)}intmulti(int*a,int*b,int*c){return(*c*a**b)}typedefint(FU

请帮我解释一下
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);
fun(&temp,&arg1,   arg2);
printf( "%d\n ",*arg2);
}

main()
{
int   a;
show(multi,10,&a);
return   0;
}
答:110
上面几个供调用的函数能帮我解释一下吗?

[解决办法]
int inc(int a)
{
return(++a);
}
返回a+1的值,但实际传过来的数没有变

int multi(int*a,int*b,int*c)
{
return(*c=*a**b);
}
返回*a与*b的乘积,c的值可能发生变化


void show(FUNC2 fun,int arg1, int*arg2)
{
INCp=&inc;
int temp =p(arg1);
fun(&temp,&arg1, arg2);
printf( "%d\n ",*arg2);
}
typedef int(FUNC1)(int in);这种用法是指向函数的指针,内容是in返回值是int的
typedef int(FUNC2) (int*,int*,int*);//与上面的讲解类似.
=======================================
最终执行的是

show(multi,10,&a);

INCp=&inc;????这个不知道

反正这个题目中最难懂的就是函数指针.
搞明白就可以了

热点排行