русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Посилання. Призначення посилань


Дата додавання: 2014-04-22; переглядів: 1066.


Посилання призначені для створення псевдонімів об’єктів програми. Раніше ми використовували вказівники, які зберігали адреси обїектів програми, і через вказівники отримували доступ до цих об’єктів. При цьому використовували дві операції – визначення адреси (&) і звертання за адресою *. Посилання надають майже ті самі можливості, що і вказівники, але мають більш простий синтаксис.

Визначення посилання має такий синтаксис:

 

тип & ім’я_посилання ім’я_змінної;

 

При створенні посилання його необхідно ініціалізувати за допомогою імені іншого об’єкту програми. Після цього посилання буде діяти як альтернативне ім’я даного об’єкту, всі операції над посиланням в дійсності будуть виконуватися над цим об’єктом.

 

#include <iostream>

using namespace std;

int main( ) {

int a;

int &r = a;

a = 123;

cout << "a = " << a << endl; // 123

cout << "r = " << r << endl; // 123

r = 321;

cout << "a = " << a << endl; // 321

cout << "r = " << r << endl; // 321

}

 

Посилання, на відміну від вказівників, обов’язково необхідно ініціалізувати. Якщо це не зробити, виникне помилка компіляції.

Операція визначення адреси, застосована до посилання, повертає адресу об’єкту, псевдонімом якого є це посилання. В наступному прикладі на екран буде виведена адреса змінної а:

 

#include <iostream>

using namespace std;

int main( ) {

int a;

int &r = a;

cout << "&a = " << &a << endl;

cout << "&r = " << &r << endl;

}

 

Після створення і ініціалізації посилання завжди буде псевдонімом одного і того самого об’єкту:

 

#include <iostream>

using namespace std;

int main( ) {

int a = 123, b = 321;

int &r = a;

cout << "a = " << a << endl; // 123

r = b;

cout << "a = " << a << endl; // 321

}

 

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

 

#include <iostream>

using namespace std;

int main( ) {

struct student {

int id;

int rating;

} s = { 1, 85 };

student &r = s;

cout << r.id << endl;

}

 


<== попередня лекція | наступна лекція ==>
Файли з довільним доступом | Передача аргументів функцій як посилань


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн