C дозволяє створити ситуацію, коли кілька покажчиків посилаються на ту саму ділянку пам’яті. Ви можете оголосити кілька покажчиків і змусити їх все вказувати на ту саму змінну. Це не просто теоретична особливість. Таке відбувається завжди у реальному коді.
Розгляньте наступний фрагмент:
`
Тут p отримує адресу i. q робить те саме. Потім r набуває значення p. Оскільки p зберігає адресу i, r тепер також вказує на i. Оператор присвоювання копіює адресу з правої частини до лівої. Він не копіює дані. Він копіює розташування.
Після виконання цих рядків змінна i фактично отримала псевдоніми. Тепер ви можете звертатися до цілого числа i через його оригінальне ім’я або через будь-який із покажчиків.
Змінна i тепер має чотири імені: i, *p, *q і *r.
Немає жорсткого обмеження на кількість покажчиків, які можуть зберігати ту саму адресу. Ви можете ланцюжок покажчиків поглиблювати настільки, наскільки це потрібно. Змініть *p, і *r побачить цю зміну. Всі вони дивляться на один і той самий осередок пам’яті.
Будь-яка кількість покажчиків може вказувати на ту саму адресу.
Ця поведінка є фундаментальною для роботи покажчиків. Це не особливий випадок. Це стандартна поведінка. Розуміння цього допомагає уникнути плутанини при налагодженні. Якщо ви бачите несподівані значення, перевірте, чи не змінюють кілька покажчиків одне й те саме місце. Не магія. Це просто пам’ять.

























