什么';C中函数指针的实用程序是什么?

什么';C中函数指针的实用程序是什么?,c,function,pointers,function-pointers,C,Function,Pointers,Function Pointers,可能重复: 我只是读了一些关于K+R中函数的指针。我了解这些指针是如何工作的,但我看不到它们的实用性。这种类型的指针在编程中有什么用途?有很多用途,但根据我个人的经验,它们在操作数组时最有用,因为C数组有点毛茸茸的。使用指针的主要原因之一是当我们传递数据时。如果我们使用指针,我们就不会对相同的数据进行无意义的复制 例如,您希望将大小为200字节的结构传递给函数。什么更昂贵:传递结构的4(或8)字节内存地址或200字节的整个副本?您可以使用函数指针执行各种任务,例如注册工厂、在数据结构上应用算法

可能重复:


我只是读了一些关于K+R中函数的指针。我了解这些指针是如何工作的,但我看不到它们的实用性。这种类型的指针在编程中有什么用途?

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

使用指针的主要原因之一是当我们传递数据时。如果我们使用指针,我们就不会对相同的数据进行无意义的复制


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

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