返回介绍

如何创建函数指针

发布于 2024-10-10 23:21:30 字数 1673 浏览 0 评论 0 收藏 0

假如想要创建指针变量,用来保存上一页中函数的地址,必须像这样做:

看起来很复杂,对吗?

但就得那么复杂,因为需要把函数的返回类型和接收参数类型告诉 C 编译器。一旦声明了函数指针变量,就可以像其他变量一样使用它,可以对它赋值,也可以把它加到数组中,还可以把它传给函数……

……回去看看

find() 的代码……这里没有蠢问题问:char** 是什么意思?是不是打错了?答:char** 是一个指针,通常用来指向字符串数组。

 

练习

看看其他人想要找的男生类型,你能否为每类搜索创建函数?第一个已经写好。

 

练习解答

你将看到其他人想找什么类型的男生,并为每类搜索创建函数。

试驾

把你写的这些函数拉出来溜溜,看看它们是怎么工作的。

你需要创建一个程序,依次把函数传给 find() :

find() 函数每次都搜索了不同的内容。有了函数指针,就能把函数传给函数,用更少的代码创建功能更强大的程序,这就是为什么说函数指针是 C 语言最强大的特性之一。

函数指针狩猎指南

当你身处芦苇丛中,识别函数指针就变得异常困难,下面这个狩猎指南简单易懂,便于携带,而且刚好可以装进 C 程序员的弹夹包。

 这里没有蠢问题问:如果函数指针是指针,为什么调用函数时不需要在它们前面加* ?答:可加也可不加,可以把代码中的 match(ADS[i]) 换成(*match)(ADS[i]) 。问:我可以用& 取得函数的地址吗?答:当然,除了 find(sports_or_workout) ,还可以写 find(&sports_or_workout) 。问:那为什么不这么写?答:即使省略* 和& ,C 编译器也能识别它们,这样代码更好读。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文