Особливості мови С. Навчальний посібник
Тема покажчиків тісно пов'язана з темою динамічних типів даних. Коли програма компілюється, то під оголошені змінні так чи інакше (в залежності від того, де вони були оголошені) виділяються ділянки пам'яті. Потім розмір цих ділянок не змінюється, може змінюватися тільки їх вміст (значення або дані). Однак саме за допомогою покажчиків можна захоплювати і звільняти нові ділянки пам'яті вже в процесі виконання програми. Динамічні типи даних будуть розглянуті пізніше.
В результаті виконання даного програмного коду на екрані з'являється приблизно наступне (шістнадцяткове число у вас буде іншим):
Як ми бачимо, незважаючи на те, що значення змінних помінялися, осередки пам'яті залишилися колишніми.
На екрані буде виведено число 8.
Якщо для вас вищеописане не очевидно, то повторіть урок спочатку, почитайте інші джерела і добийтеся повного розуміння, тому що без цього далі рухатися марно.
Якщо покажчик оголошений, але не визначений, то він посилається на довільний ділянку пам'яті з невідомо яким значенням:
Результат (в Ubuntu):
Використання невизначених покажчиків в програмі при обчисленнях може призвести до виникнення серйозних помилок. Щоб уникнути цього, вказівником можна привласнити значення, що говорить, що покажчик нікуди не посилається (NULL). Використовувати такий покажчик в виразах не вийде, поки йому не буде присвоєно конкретне значення:
Результат (в Ubuntu):
В даному випадку, якщо спробувати витягти значення з пам'яті за допомогою покажчика, який нікуди не посилається, то виникає "помилка сегментування".