cpp函数(三):指向函数的指针

程序运行时,一个函数包括的指令序列(函数相当于一个指令集)要占据一段内存空间,这段内存空间的首字节的地址称为函数的入口地址编译系统用函数名代表这一空间
请看下面的示例

void show(const char * s1, const char *s2);
int main()
{
   void (*func_ptr)(const char * s1, const char *s2);
   func_ptr = show;    //初始化func_ptr
   func_ptr("good", "luck");
   cout<<&func_ptr;
   return 1;
}

void show(const char * s1, const char *s2)
{
    cout<<s1<<"\n****\n"<<s2<<endl;
}

输出是

good
****
luck
0x6dfefc

这里定义了指针func_ptr, 指向show()函数,通过上述代码,我们可以知道函数指针的定义按照下面的语法:

<typename> (*variable_name) (format argument list);

当我们要给指针赋值时通过下面的方式

(*variable_name) = (function_name);

然后就可以用函数指针来调用这个函数了,可以像func_ptr("good", "luck")这样,也可以(*unc_ptr)("good", "luck")这样调用,两者是等价的

有了函数指针,编程就更加灵活了,下面主要介绍一种这样的一种应用——把函数作为参数传入

考虑以下,如果我们想实现多种方式的数组排序方法,我们会定义两个函数,一个指明排序规则,一个进行具体操作


其他文章

cpp函数:认识函数
cpp函数:生命周期与作用域
cpp函数:指向函数的指针

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容