НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ
Мова програмування C. Уроки W3Schools для початківців українською мовою

En Es De

C Покажчики


Створення покажчиків

З попереднього розділу ви дізналися, що ми можемо отримати адресу пам’яті змінної за допомогою оператора посилання &:

Приклад

int myAge = 43; // int змінна

printf("%d", myAge);  // Виводить значення myAge (43)
printf("%p", &myAge); // Виводить адресу пам’яті myAge (0x7ffe5367e044)
Спробуйте самі »

Покажчик- це змінна, яка зберігає адресу пам’яті іншої змінної як своє значення.

Змінна покажчика вказує на тип даних (наприклад, int) того самого типу і створюється за допомогою оператора *.

Адреса змінної, з якою ви працюєте, призначається вказівнику:

Приклад

int myAge = 43;     // Змінна int
int* ptr = &myAge;  // Змінна-покажчик з іменем ptr, яка зберігає адресу myAge

// Виведіть значення myAge (43)
printf("%d\n", myAge);

// Виведіть адресу пам’яті myAge (0x7ffe5367e044)
printf("%p\n", &myAge);

// Виведіть адресу пам’яті myAge за допомогою покажчика (0x7ffe5367e044)
printf("%p\n", ptr);
Спробуйте самі »

Пояснення прикладу

Створіть змінну-покажчик із назвою ptr, яка вказує на змінну int (myAge). Зауважте, що тип покажчика має відповідати типу змінної, з якою ви працюєте (int у нашому прикладі).

Використовуйте оператор &, щоб зберегти адресу пам’яті змінної myAge і призначити її покажчику.

Тепер ptr містить значення адреси пам’яті myAge.


Розіменування

У наведеному вище прикладі ми використали змінну-покажчик, щоб отримати адресу пам’яті змінної (використовується разом з оператором посилання &).

Ви також можете отримати значення змінної, на яку вказує покажчик, використовуючи оператор * (оператор розіменування):

Приклад

int myAge = 43;     // Оголошення змінної
int* ptr = &myAge;  // Оголошення покажчика

// Довідка: Виведіть адресу пам’яті myAge за допомогою покажчика (0x7ffe5367e044)
printf("%p\n", ptr);

// Розіменування: Виведіть значення myAge за допомогою покажчика (43)
printf("%d\n", *ptr);
Спробуйте самі »

Зауважте, що знак * може ввести в оману, оскільки він виконує дві різні дії в нашому коді:

  • При використанні в оголошенні (int* ptr) створюється змінна-вказівник.
  • Якщо не використовується в оголошенні, він діє як оператор розіменування.

Корисно знати: Є два способи оголосити змінні покажчика в C:

int* myNum;
int *myNum;

Примітки щодо покажчиків

Покажчики — це одна з речей, завдяки яким C виділяється серед інших мов програмування, таких як Python та Java.

Вони важливі в мові C, оскільки дозволяють нам маніпулювати даними в пам’яті комп’ютера. Це може зменшити код і підвищити продуктивність. Якщо ви знайомі зі структурами даних, такими як списки, дерева та графіки, ви повинні знати, що покажчики особливо корисні для їх реалізації. А іноді навіть доводиться використовувати покажчики, наприклад, під час роботи з файлами.

Але будьте обережні; з покажчиками слід поводитися обережно, оскільки можна пошкодити дані, що зберігаються в інших адресах пам’яті.


C Вправи

Перевірте себе за допомогою вправ

Вправа:

Створіть змінну-покажчик під назвою ptr, яка вказує на змінну int myAge:

int myAge = 43;
  = &myAge;