读书人

请帮小弟我解释一下

发布时间: 2012-02-24 16:30:39 作者: rapoo

请帮我解释一下
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;????这个不知道

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

读书人网 >C++

热点推荐