Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Посилання проти вказівників | Section
Покажчики та Посилання в 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

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

Виберіть правильну відповідь

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

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

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

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

Запитати АІ

expand

Запитати АІ

ChatGPT

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

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