Одним из нововведений в С++ является новый вид переменных -
ссылки. Ссылка - переменная, задаваемая указателем. Чтобы сделать переменную ссылкой, необходимо после описателя типа поставить операцию
'&'. Ссылка схожа с переменной во всем, однако, на самом деле она
совпадает с другой переменной, адрес которой указывается при объявлении ссылки.
В Си, если вы хотите непосредственно работать с передаваемой в
функцию переменной, вам нужно передать указатель на эту переменную.
При этом нужно соблюдать соответствующий синтаксис и помнить о том,
что указатель требуется разыменовать. С++ позволяет вам с помощью
ссылки передавать и модифицировать действительное значение переменной.
Си Турбо и Borland C++
typedef struct { struct rect { // Определение структуры
int wd, ht; int wd, ht; // Ширина и высота
} rect; }; // прямоугольника
Передача ссылки
v
int area(rect *r) int area(rect& r) // Вычисление
{ { // площади прямоугольника
return r->wd*r->ht; return r.wd * r.ht;
} } ^
- Использование раздели-
теля вместо '->'
rect r; rect r;
int k = area(&r); int k = area(r);
В данном примере, для вычисления площади прямоугольника, после
определения структуры rect описана функция элемент area с параметром-ссылкой r. После инициализации переменной r типа rect, выполняется вызов функции элемента area с аргументом r, который будет
использоваться не явно, а в качестве ссылки. Таким образом, незаметно
для нас, аргумент передан в функцию элемент, через его адрес. Отметим, что rect& r, rect &r и rect & r эквивалентны.
Отличием C++ от языка Си является смена разделителя с '->' на '.'.