到目前为止,我想出的最好的一个是一个卡片目录,其中包含了如何烹饪不同类型的食物的说明。它不包含如何烹调食物的信息,也不包含烹调食物本身的说明,但它可以为您提供位于其他地方的相关说明。这是一个很好的类比,因为它展示了能够烹调不同类型的食物(墨西哥,素食,印度等)的灵活性。但卡片目录的概念正在迅速被计算机化的搜索所取代。有人问我:“什么是卡片目录?”使用谷歌作为查找烹饪说明的例子是可以的,但没有明确区分去一个物理位置,找到说明,并“执行它们”。有谁有对他们有用的类比吗?
发布于 2009-05-24 17:14:55
无论如何,卡片目录的事情看起来有点奇怪。根据你的主题,函数指针的一个更好的类比是,它们是食谱索引中的一个条目。“Cajun……39”,所以你转到39页,那里有烹饪Cajun的说明。
发布于 2009-05-24 16:13:33
我不认为尝试通过非技术类比来教授一个非常技术性的概念是一个好主意--大概你教的人不需要模糊的“管理总结”之类的理解,他们最终将需要具体地应用这个概念,那么为什么要这样绕道呢?
为什么不用一个简单的编程例子来解释呢?也许最好的排序算法是通用排序算法(大概学生已经学习了排序)。
“函数指针基本上是一种传递一段代码的方式,供其他不需要事先知道它的代码调用。例如,像快速排序或合并排序这样的排序算法实际上只需要知道一件关于它正在排序的东西的事情:如何比较它们。但是,如果您将比较构建到排序算法中,它将只能比较一个事物,如整数。通过将比较逻辑作为函数指针传递给排序算法,并在算法需要比较元素时调用,该算法现在可以用于排序任何东西,而无需更改其代码-如果您想使用它来比较苹果和橙子,您只需编写一个水果匹配函数,并将一个指针传递给排序算法,以及您要排序的水果。
发布于 2009-05-24 16:02:11
这个类比似乎过于复杂了。
函数指针就像一个可以帮你完成工作的人的电话号码。
https://stackoverflow.com/questions/904043
复制相似问题