69,371
社区成员
发帖
与我相关
我的任务
分享
#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);
fun(&temp,&arg1, arg2);
printf("%d\n",*arg2);
}
main()
{
int a;
show(multi,10,&a);
return 0;
}
#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); //第一个int是这个函数指针所指向的函数的返回值,里面是这个函数的参数
typedef int(FUNC2) (int*,int*,int*);
void show(FUNC2 fun,int arg1, int*arg2)
{
INCp=&inc; //这里错了,应该是FUNC1 *p=inc;或者FUNC1 *p=&inc;从后面的inc可知这里是一个函数指针,而且这个函数指针的参数是要和inc()函数相同,故应该是FUNC1.
int temp =p(arg1);
fun(&temp,&arg1, arg2);
printf("%d\n",*arg2);
}
int main()
{
int a;
show(multi,10,&a);
return 0;
}