Ссылки на С++
Ссылочная переменная — это псевдоним, то есть другое имя уже существующей переменной. Как только ссылка инициализируется переменной, для ссылки на переменную можно использовать либо имя переменной, либо имя ссылки.
Ссылки и указатели
Ссылки часто путают с указателями, но есть три основных различия между ссылками и указателями:—
-
У вас не может быть ссылок NULL. Вы всегда должны иметь возможность предполагать, что ссылка подключена к допустимой части хранилища.
-
После инициализации ссылки на объект ее нельзя изменить, чтобы она ссылалась на другой объект. Указатели могут указывать на другой объект в любое время.
-
Ссылка должна быть инициализирована при ее создании. Указатели можно инициализировать в любое время.
Создание ссылок в C++
Думайте об имени переменной как о метке, прикрепленной к местоположению переменной в памяти. Затем вы можете думать о ссылке как о второй метке, прикрепленной к этой ячейке памяти. Таким образом, вы можете получить доступ к содержимому переменной либо через исходное имя переменной, либо через ссылку. Например, предположим, что у нас есть следующий пример —
int i = 17;
Мы можем объявить ссылочные переменные для i следующим образом.
int& r = i;
Прочтите &в этих объявлениях как ссылку . Таким образом, прочитайте первое объявление как «r — это целочисленная ссылка, инициализированная значением i», а второе объявление — как «s — это двойная ссылка, инициализированная значением d.». В следующем примере используются ссылки на int и double —
Живая демонстрация
#include <iostream>
using namespace std;
int main () {
// declare simple variables
int i;
double d;
// declare reference variables
int& r = i;
double& s = d;
i = 5;
cout << "Value of i : " << i << endl;
cout << "Value of i reference : " << r << endl;
d = 11.7;
cout << "Value of d : " << d << endl;
cout << "Value of d reference : " << s << endl;
return 0;
}
Когда приведенный выше код скомпилирован и выполнен, он дает следующий результат —
Value of i : 5 Value of i reference : 5 Value of d : 11.7 Value of d reference : 11.7
Ссылки обычно используются для списков аргументов функций и возвращаемых значений функций. Итак, ниже приведены две важные темы, связанные со ссылками на C++, которые должны быть понятны программисту на C++ —
| Старший № | Концепция и описание |
|---|---|
| 1 | Ссылки как параметры C++ поддерживает передачу ссылок в качестве параметра функции более безопасно, чем параметры. |
| 2 | Ссылка как возвращаемое значение Вы можете вернуть ссылку из функции C++, как и любой другой тип данных. |
Язык C