В ваших собственных исследованиях (самостоятельно или в классе) был ли у вас момент "ах-ха", когда вы, наконец, действительно поняли указатели? У вас есть объяснение, которое вы используете для начинающих программистов, которое кажется особенно эффективным?
Например, когда новички впервые сталкиваются с указателями в C, они могут просто добавлять &
s и *
s, пока он не скомпилируется (как я сам когда-то делал). Возможно, это была картинка или действительно хорошо мотивированный пример, который заставил указатели «щелкнуть» для вас или вашего ученика. Что это было, и что вы пробовали до того, как это не сработало? Были ли какие-то темы необходимыми условиями (например, структуры или массивы)?
Другими словами, что было необходимо для понимания значения &
s и *
когда вы могли бы использовать их с уверенностью? Изучение синтаксиса и терминологии или вариантов использования недостаточно, в какой-то момент идея должна быть усвоена.
Обновление: мне очень нравятся ответы до сих пор; пожалуйста, держите их в пути. Здесь много хороших перспектив, но я думаю, что многие из них являются хорошими объяснениями / лозунгами для нас после того, как мы усвоили эту концепцию. Я ищу подробные контексты и обстоятельства, когда вас осенило.
Например:
Я лишь немного понимал указатели синтаксически в C. Я слышал, как два моих друга объясняли указатели другому другу, который спросил, почему
struct
указатель был передан. Первый друг говорил о том, как на него нужно ссылаться и изменять, но это был просто короткий комментарий другого друга, где он меня ударил: «Это также более эффективно». Прохождение 4 байта вместо 16 байтов было последним концептуальным изменением, в котором я нуждался.