以前把,我觉得,数组只能传数据啊,字符串呀,没想到还可以传函数。
在这之前说一下指针函数吧。
举几个列子 void (*p)(void); int (*p)(void); char (*p)(char); 指针函数长这个样子,注意一定要写出(*p),这个括号是必须的。
怎么用呢。
用这个指针函数 void (*p)(void);
先设个函数吧。 void print(){ printf("hi,good night!\n");}
void main()
{
p= print;
(*p)();
}
就这么使用,指针函数里面的符合说明符要和调用的函数一样,就是指针函数前面的void 要对于 print 前面的void,不能是char,int什么的,后面括号里面的也一样。
好了,这样我们真的函数可以传给指针函数。
前面说到了数组可以传递函数,当然就是通过指针来实现的。
我们通过定义一个数组指针函数,也就是多个指针函数的意思,数组指针是指针,指针数组是数组。
废话不说了。
void (*p[4])(void);
void print()
{
printf("good bye!");
}
void main()
{
p[4]=print;
p[4]();
}
还有种方法就是
typedef void(*p)(void);
p lw[4];
void main()
{
lw[1]=print;
lw[1]();
}
效果是一样的。