Лекция: Что такое ссылочный тип

 

Сначала рассмотрим самостоятельное использование переменной этого типа, так называемую независимую ссылку. Пусть объявлены две переменные, обычная (x) и ссылочного типа (s): float x=5; float &s=x;. Переменная ссылочного типа обязательно должна быть проинициализирована. При этом особенностью инициализации является использование ранее объявленной обычной переменной (в нашем примере x).

После такого объявления идентификатор s определяет другое, альтернативное, имя одной и той же ячейки, названной x. Другими словами, s и x — синонимы, разные идентификаторы для обозначения одной и той же области оперативной памяти, одной и той же переменной.Иногда говорят, что ссылочная переменная — это псевдоним переменной, к которой она обращается. Поэтому оператор cout<<endl <<x<<" "<<s; выведет два одинаковых числа 5. Изменим значение переменной x, например, x*=2; а выведем s: cout<<endl <<x<<

” “<<s; Несмотря на то, что значение s явно в программе не изменялось, то есть не было записано s*=2, оно также изменится, и будут выведены два одинаковых числа 10. Это произошло потому, что между этими переменными нет разницы, то есть s и x — имена одной и той же ячейки. Наоборот, если изменим значение s, например, s+=100; а с помощью cout<<endl <<x<<” “<<s; выведем x, то убедимся, что x также изменилось, и выводятся два одинаковых числа 110.

Если объявить и проинициализировать ещё одну “обычную” переменную float y=3; и записать s=y; то копируются не адреса, а, как и при обычном объявлении, значение одной ячейки (y) помещается в другую, которую можно использовать как с именем s, так и x. Аналогично, s++ не меняет адрес, а увеличивает на единицу значение переменной s или x. Другими словами, с ячейкой s работаем как с обычной переменной.

Если объявляется несколько переменных ссылочного типа, то перед каждым идентификатором должен стоять символ “&”.

Следует различать использование символа & для взятия адреса элемента. Это связано с указателями и рассматривается позже. При работе с переменными ссылочного типа символ & записываем только при объявлении.

Самостоятельное использование переменных ссылочного типа не имеет практического применения. Наоборот, независимые ссылки создают недоразумения и затрудняют отладку программы. Ссылочный тип эффективен в функциях.

 

еще рефераты
Еще работы по информатике