Unetway

C++ - Ссылки

Контрольная переменная - это псевдоним, то есть другое имя для уже существующей переменной. Когда ссылка инициализируется переменной, либо имя переменной, либо имя ссылки могут использоваться для ссылки на переменную.

Ссылки против указателей

Ссылки часто путаются с указателями, но три основных различия между ссылками и указателями -

  • У вас не может быть ссылок 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 ++ -

Ссылки как параметры

C ++ поддерживает передачу ссылок в качестве функционального параметра более безопасно, чем параметры.

Ссылка как возвращаемое значение

Вы можете вернуть ссылку из функции C ++, как и любой другой тип данных.