您的位置:首页 > 博客中心 > 互联网 >

深入理解函数指针

时间:2022-04-23 13:39

函数指针虽然在语法上让人有些迷惑,但不失为一种有趣而强大的工具。本文将从}

这是一个简单的例子。运行这段代码,你会看到每个函数指针都会执行,只是会收到一些关于字符转换的警告。但是,这些函数指针都能正常工作。

在第15行,add作为函数名,返回这个函数的地址,它被隐式的转换为一个函数指针。我之前提到过,在函数指针被要求当作输入的地方,就能够使用函数名。

在第16行,解引用符作用于add之前,即*add,返回在这个地址的函数。之后跟函数名一样,它被隐式的转换为一个函数指针。

在第17行,取地址符作用于add之前,即&add,返回这个函数的地址,之后又得到一个函数指针。

18到19行,add不断地解引用自身,不断返回函数名,并被转换为函数指针。到最后,它们的结果都和函数名没有区别。

显然,这段代码不是优秀的实例代码。我们从中收获到了如下知识:

  • 函数名会被隐式的转换为函数指针,就像作为参数传递的时候,数组名被隐式的转换为指针一样。在函数指针被要求当作输入的任何地方,都能够使用函数名。
  • 解引用符*和取地址符&用在函数名之前基本上都是多余的。

本类排行

今日推荐

热门手游