Ссылка представляет собой синоним имени, указанного при инициализации
ссылки. Ссылку можно рассматривать как указатель, который всегда разыменован.
Формат объявления ссылки:
тип & имя;
где тип – это тип величины, на которую указывает ссылка, & –
оператор ссылки, означающий, что следующее за ним имя является именем переменной
ссылочного типа, например:
int kol;
int& pal = kol; // ссылка pal - альтернативное имя для kol
const char&
CR = '\n'; // ссылка на константу
Необходимо помнить следующие правила:
переменная-ссылка должна явно инициализироваться при ее описании,
кроме случаев, когда она является параметром функции, описана как extern или ссылается на поле
данных класса;
после инициализации ссылке не может быть присвоена другая переменная;
тип ссылки должен совпадать с типом величины, на которую она ссылается;
не разрешается определять указатели на ссылки, создавать массивы ссылок
и ссылки на ссылки.
Ссылки применяются чаще всего в качестве параметров функций и типов
возвращаемых функциями значений. Ссылки позволяют использовать в функциях
переменные, передаваемые по адресу, без операции разыменования, что улучшает
читаемость программы
Ссылка, в отличие от указателя, не занимает дополнительного пространства
в памяти и является просто другим именем величины. Операции над ссылкой приводят
к изменению величины, на которую она ссылается, то есть с ней работают как с
переменной, но обращение идет с использование адреса, а не копии переменной.
|