This question already has answers here:
What are the barriers to understanding pointers and what can be done to overcome them? [closed]

(28 个回答)


8年前关闭。




我发现我通过现实世界的比较隐喻学习得最好。例如,在 java 中,帮助我真正理解访问器和修改器概念的一种方式是通过中间人的概念来思考它(私有(private)变量不喜欢直接与客户打交道,他们更喜欢拥有一个中间人(访问器和修改器)处理它们)

C 中指针的概念对我来说仍然有点棘手。用什么比喻来描述它们是如何工作的?

最佳答案

我一直喜欢指针就像你的手指这样的比喻。如果我带你去 parking 场,让你给我找一辆红色的车,你伸出一根手指(你选择;))并指向一辆红色的车。

你的手指不是答案。你的手指什么也没告诉我,但如果我看看你手指所指的地方,我就能找到我要找的东西。

现在我可以让你找到一辆蓝色的汽车,你可以将你的手指重定向(重新分配)到一辆新车上。现在您的指针(与以前相同)向我显示相同类型的新数据。指针没有改变,只是它指向的东西。

这也适用于多个指针。我可以问,指针指向蓝色汽车的位置,你可以用另一只手,用一根手指指向第一根手指。现在,如果我想知道蓝色汽车在哪里,我可以按照第一根手指的方向到第二根手指,到汽车(数据)。

关于c - 用什么来描述 C 中的指针是一个很好的现实世界比喻?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15818579/

10-11 22:08
查看更多