Язык С++ и программирование на нем. Рейзлин В.И. - 66 стр.

UptoLike

Составители: 

68
ir = 3.0; // d – не меняется!
Здесь создаётся анонимная переменная типа int, которая инициа-
лизируется значением, полученным в результате преобразования значе-
ния типа double к типу int. Затем ссылка инициализируется значением
адреса этой переменной.
Анонимный объект создаётся также, когда инициализатор не яв-
ляется объектом, например, является константой:
int& ir = 3; // Анонимный объект получил значение 3.
Здесь сначала создается анонимный объект типа int и он инициа-
лизируется значением 3. После этого создаётся ссылка ir и инициали-
зируется адресом анонимного объекта. Теперь ir его псевдоним и
оператор
ir = 8;
устанавливает новое значение этого анонимного объекта.
16.6. Ссылки в качестве параметров функций
Ссылки часто используются в качестве формальных параметров
функций. Механизм передачи параметров в функции с помощью ссылок
называют в программировании передачей аргументов по ссылке. С по-
мощью ссылок можно добиться изменения значений фактических пара-
метров из вызывающей программы (без применения указателей).
void swap (int & x, int & y){
int t = x;
x = y;
y = t;
}
Теперь обращение в вызывающей функции имеет вид:
int a = 3, b = 7;
swap (a, b);
Здесь создаются локальные относительно функции swap() пере-
менные x и y ссылочного типа, которые являются псевдонимами пере-
менных a и b и инициализирующиеся переменными a, b. После этого
все действия с x и y эквивалентны действиям с a и b, что приводит к
изменению значений a и b.