我想问的是怎样在定义一个函数的形式参数是,怎样把它的一个形参也设为一个函数。
譬如说定义一个函数void function(int x,visit())
{
……
}
function中的第一个形参是一个整形x舍,但是第二个形参是一种操作。
在主函数调用时 void main()
{
function(3,print());
function(4,delete());
……
}
赋给function不同的函数print()和delet()就完成了不同的操作舍。我想这在遍历这些操作中很有用舍。但是书上没有具体说怎么定义,那位能给我一个详细的定义方法解释吗?能举个例子就更好了。谢谢大家啊。
看了各位师兄解释基本上明白了。但是还有一个疑问,如果被调用的几个函数所需要的形参的个数不一样怎么办呢?譬如说改一下六楼师兄的程序
#include<stdio.h>
int max(int x,int y)/*需要两个形参*/
{
return(x>y?x:y);
}
int print( int m)/* 需要一个形参*/
{
printf("This one going to be shown is %d",m);
}
int func(int x,int y,int (*p)())
{
int result;
result=(*p)(x,y);/*赋给了两个参数,所以将max调进去的时候没问题,但是调入print怎么解决呢?*/
return(result);
}
void main()
{
int x,y,result;
printf("\nPlease input two integers a and b:\n");
scanf("%d%d",&x,&y);
printf("\nthe larger one is %d\n",func(x,y,max));
func(x,y,print);
}
我好像听老师说过可以用一个数组什么的来保证形参个数可变,但是具体怎么做呢?希望大家在给我解释一下哈,非常感谢啊