Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Посилання проти Вказівників | Основи Посилань
Покажчики та Посилання в C++

bookПосилання проти Вказівників

Свайпніть щоб показати меню

Посилання та вказівники забезпечують непрямий доступ до значень змінних, але мають деякі ключові відмінності, а також переваги й недоліки.

Синтаксис

  • Вказівники оголошуються за допомогою символу *;

  • Посилання оголошуються за допомогою символу &.

Ініціалізація

Неможливо оголосити порожнє посилання. Але можна оголосити порожній вказівник з nullptr.

Перепризначення

Посилання не можуть бути перепризначені для вказівки на інший об'єкт.

main.cpp

main.cpp

copy
12345678910111213
#include <iostream> int main() { int x = 125, y = 500; // creating a reference to x variable int& ref_x = x; ref_x = y; // attempt to re-assigned ref_x ref_x = 0; std::cout << x << ' ' << y; }

Вказівники можуть бути перепризначені для вказівки на різні області пам'яті.

main.cpp

main.cpp

copy
12345678910111213
#include <iostream> int main() { int x = 125, y = 500; // creating a pointer to x variable int* ptr = &x; ptr = &y; // attempt to re-assigned ref_x *ptr = 0; std::cout << x << ' ' << y; }

Доступ до значення

Щоб отримати значення, на яке вказує вказівник, використовується оператор розіменування *. Для посилань не потрібно використовувати спеціальні оператори; достатньо звернутися до змінної-посилання безпосередньо.

І вказівники, і посилання є важливими для керування пам'яттю, забезпечуючи гнучкість програм. Їх використання залежить від контексту.

question mark

Який фрагмент коду коректно демонструє, що покажчик може бути переназначений на іншу змінну, а посилання — ні?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 3

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 3. Розділ 3
some-alt