重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
先把TraverseSqList这个函数里的visit换个名字(比如f),要不然会冲突
创新互联公司专注于企业全网营销推广、网站重做改版、芷江网站定制设计、自适应品牌网站建设、H5响应式网站、成都商城网站开发、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为芷江等各大城市提供网站开发制作服务。
status TraverseSqList(SqList l1,status (*f)(int i,SqList l1))
{
for(int i=0;il1.length ;i++)
f(i,l1);
coutendl;
return OK;
}
调用时直接写TraverseSqList(参数1,visit);就行
#include stdio.h
//---子函数声明---//
int func1();
int func2(int (*func1)()); //形参为函数指针(即指向函数的指针)
//---主函数---//
int main(){
printf("向函数二传递函数一,\n即函数一作为函数二的参数。\n");
printf("%d ",func1());
printf("%d\n",func2(func1));//注意函数名即为函数地址!!!!!!
} //实参为函数名func1或者func1,两者等价,而非func1()
//---子函数定义---//
int func1(){
return 1;
}
int func2(int (*func1)()){ //形参为函数指针(即指向函数的指针)
return func1()+1;
}
建立中间变量(形参),把实参值赋值给中间变量,当被调函数返回值时,系统释放掉中间变量。
在程序中通过对函数的调用来执行函数体,其过程与其它语言的子程序调用相似。对无参函数调用时则无实际参数表。实际参数表中的参数可以是常数、变量或其它构造类型数据及表达式。各实参之间用逗号分隔。
函数作为表达式中的一项出现在表达式中,以函数返回值参与表达式的运算。这种方式要求函数是有返回值的。例如:z=max(x,y)是一个赋值表达式,把max的返回值赋予变量z。
扩展资料:
C语言中又规定在以下几种情况时可以省去主调函数中对被调函数的函数说明。
1、如果被调函数的返回值是整型或字符型时,可以不对被调函数作说明,而直接调用。这时系统将自动对被调函数返回值按整型处理。例8.2的主函数中未对函数s作说明而直接调用即属此种情形。
2、当被调函数的函数定义出现在主调函数之前时,在主调函数中也可以不对被调函数再作说明而直接调用。例如例8.1中,函数max的定义放在main 函数之前,因此可在main函数中省去对max函数的函数说明int max(int a,int b)。
3、如在所有函数定义之前,在函数外预先说明了各个函数的类型,则在以后的各主调函数中,可不再对被调函数作说明。
参考资料来源:百度百科-函数调用