Посилання проти Вказівників
Свайпніть щоб показати меню
Посилання та вказівники забезпечують непрямий доступ до значень змінних, але мають деякі ключові відмінності, а також переваги й недоліки.
Синтаксис
-
Вказівники оголошуються за допомогою символу
*; -
Посилання оголошуються за допомогою символу
&.
Ініціалізація
Неможливо оголосити порожнє посилання. Але можна оголосити порожній вказівник з nullptr.
Перепризначення
Посилання не можуть бути перепризначені для вказівки на інший об'єкт.
main.cpp
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
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; }
Доступ до значення
Щоб отримати значення, на яке вказує вказівник, використовується оператор розіменування *. Для посилань не потрібно використовувати спеціальні оператори; достатньо звернутися до змінної-посилання безпосередньо.
І вказівники, і посилання є важливими для керування пам'яттю, забезпечуючи гнучкість програм. Їх використання залежить від контексту.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат