Информатика. Общая информатика. Основы языка C++. Мамонова Т.Е. - 164 стр.

UptoLike

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

r 1
cout<<”x=”<<x<<”y=”<<y;
Результат работы программы: x=5y=1
Для передачи по адресу также могут использоваться ссылки. При
передаче по ссылке в функцию передается адрес указанного при вызове
параметра, а внутри функции все обращения к параметру неявно разы-
меновываются.
Пример 72
void Change(int &a,int &b)
{int r=a;a=b;b=r;}
int x=1,y=5;
Change(x,y);
A &x 5
B &y 1
r 1
cout<<”x=”<<x<<”y=”<<y;
Результат работы программы: x=5y=1
Использование ссылок вместо указателей улучшает читаемость
программы, т.к. не надо применять операцию разыменовывания. Ис-
пользование ссылок вместо передачи по значению также более эффек-
тивно, т.к. не требует копирования параметров. Если требуется запре-
тить изменение параметра внутри функции, используется модификатор
const. Рекомендуется ставить const перед всеми параметрами, изменение
которых в функции не предусмотрено (по заголовку будет понятно, ка-
кие параметры в ней будут изменяться, а какие нет).
4.8.4. Локальные и глобальные переменные
Переменные, которые используются внутри данной функции, назы-
ваются локальными. Память для них выделяется в стеке, поэтому после
окончания работы функции они удаляются из памяти. Нельзя возвра-
щать указатель на локальную переменную, т.к. память, выделенная та-
кой переменной, будет освобождаться.
Пример 73
int*f()
{
int a;
. . . .
return&a; // НЕВЕРНО
164