Вказівники
У С++ ми можемо створити змінну, яка зберігатиме адресу у пам'яті. По суті, ця змінна вказує на дані, які знаходяться у пам'яті за цією адресою.
Вказівник - змінна, яка зберігає адресу у пам’яті.
Оголошення вказівника
Для оголошення вказівника записують тип даних на які він вказує та символ*
, що одначає вказівник на
.
Приклад оголошення вказівника на змінну типу int
:
У цьому прикладі ми:
Оголосили змінну типу
int
з ім'ямanswerOfLifeUniverseAndEverything
.Оголосили вказівник на
int
з назвоюptrToAnswer
.Ініціалізували вказівник значенням - адресою
answerOfLifeUniverseAndEverything
Розіменування вказівника
Користуючись вказівником, ми можемо доступитися та змінити дані за адресою пам’яті, яку зберігає вказівник. Для цього використовують оператор *
. Ця операція називається операцією розіменування вказівника. Наприклад:
У консолі після запуску прикладу ми побачимо наступний вивід:
Як бачимо з прикладу, ми модифікували значення змінної через вказівник.
nullptr
На відміну від посилання, ми можемо також створити вказівник, який не вказує ні на що та присвоїти йому адресу пізніше. Для цього користуються спеціальним значенням, яке вказує на те що вказівник не містить коректної адреси - nullptr
. Наприклад:
Тепер ми можемо перевірити вказівник на коректне значення
або просто
У останньому випадку відбувається неявне перетворення типу вказівника до bool
(nullptr
- false
, будь яке інше значення - true
).
Передача параметру за вказівником
Так само як і з посиланням, ми можемо передавати параметри функції уникаючи копіювання об’єкту. Цей спосіб передачі називають передачею параметру по вказівнику. Приклад:
В загальному завжди вартує перевіряти вказівник на те, чи він ініціалізований адресою (тобто не містить nullptr)
Last updated