Ссылки на С++
Ссылочная переменная — это псевдоним, то есть другое имя уже существующей переменной. Как только ссылка инициализируется переменной, для ссылки на переменную можно использовать либо имя переменной, либо имя ссылки.
Ссылки и указатели
Ссылки часто путают с указателями, но есть три основных различия между ссылками и указателями:—
-
У вас не может быть ссылок 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