指针在C中的功能有什么用处?

时间:2011-03-03 01:10:59

标签: c function pointers function-pointers

  

可能重复:
  What is the point of function pointers?

我刚刚读到了关于K + R中功能的指针。我理解这些指针是如何工作的,但我没有看到它们的效用。这种类型的指针在编程中有什么用?

3 个答案:

答案 0 :(得分:1)

使用指针的一个主要原因是当我们传递数据时。如果我们使用指针,我们就不会制作相同数据的大量副本。

例如,您希望将大小为200字节的结构传递给函数。更昂贵的是:传递结构的4(或8)字节存储器地址或200字节的整个副本?

答案 1 :(得分:1)

您可以将函数指针用于各种任务,例如注册工厂,在数据结构上应用算法(例如,使用用户定义的排序函数对列表进行排序)。还有一些其他的用途,但基本上你需要它们来控制反转:让其他人回调你的代码,你通过提供一个指向函数的指针来做到这一点。

答案 2 :(得分:0)

有很多用途,但根据我的个人经验,它们在操作数组时最有用,因为C数组有点毛茸茸。