重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
传入参数一般按值传递,即函数中的修改不会反映到调用函数中来。
超过十多年行业经验,技术领先,服务至上的经营模式,全靠网络和口碑获得客户,为自己降低成本,也就是为客户降低成本。到目前业务范围包括了:成都网站设计、网站建设,成都网站推广,成都网站优化,整体网络托管,重庆小程序开发公司,微信开发,手机APP定制开发,同时也可以让客户的网站和网络营销和我们一样获得订单和生意!
传出参数一般用按地址传递的方式,此时被调函数中的修改会反映到主函数中。
如果即是传入参数,又希望是按地址传递的方式(效率考虑),则前面用const修饰,作用:虽然是按地址传递方式,但在函数中不能修改其值)
这是个函数指针 前面的void为返回值类型 后面的void*为参数类型.
函数指针是可以作为某个函数的参数的.
(1) 指向函数的指针变量的一般定义形式为:
数据类型 (*指针变量名)(函数参数列表)
函数名是可以缺省的 作为参数传递的时候会去调和 void*(*)(void*)这个类型相匹配的函数的
作为参数调用这个函数的时候 返回类型是void* 就相当于传了一个参数类型为void*,当然这个函数指针的参数也是void*的
#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;
}