Информатика и технология программирования


Ссылка (неявный указатель) - часть 2


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

ССЫЛКА -- псевдо-переменная, которая отображается на переменную или константу, которой она была инициализирована

В чистом виде ссылка практически не используется. Основная ее область применения -формальные параметры и результат функции. Основные свойства ссылки -синтаксис обычной переменной в операциях с ней и реализация в виде неявного указателя -сохраняются. Инициализация же заменяется назначением неявной ссылки на фактический параметр или на переменную, сохраняющую результат.

Для формального параметра -ссылки:



-формальному параметру соответствует неявный указатель;



-формальный параметр в теле функции и фактический параметр в вызове имеют синтаксис обычной переменной;



-формальному параметру в теле функции соответствует косвенное обращение по неявному указателю;



-фактический параметр в вызове функции заменяется указателем на него.

.


void INC(int &#38a) void INC(int *pa)
//----------------------------------------------------------


// Си++ Эквивалент в "классическом Си"


//----------------------------------------------------------


{ {
a++; (*pa)++;
} }
... ...
int b = 5; int b = 5;
INC(b); INC(&#38b);

При изменении значения формального параметра - ссылки происходит аналогичное изменение фактического параметра. Такой способ передачи параметров в языках программирования так и называется -ПЕРЕДАЧА ПАРАМЕТРА ПО ССЫЛКЕ.

Несколько сложнее обстоит дело со ссылкой -результатом функции:



-результат функции в операторе return и результат функции в выражении имеют синтаксис (тип) переменной;



-в качестве результата возвращается неявный указатель, назначенный на переменную (адресное выражение), стоящее в операторе return;



-если в выражении, содержащем вызов функции, производится преобразование результата в указатель на него (например, результат является фактическим параметром - ссылкой в следующем вызове), то неявный указатель передается без изменения в качестве операнда следующей операции;




Начало  Назад  Вперед



Книжный магазин