Возвращаемые значения функции. Способы возвращения значения — КиберПедия 

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Возвращаемые значения функции. Способы возвращения значения

2020-12-06 103
Возвращаемые значения функции. Способы возвращения значения 0.00 из 5.00 0 оценок
Заказать работу

Возвращаемое значение функции — это значение, возвращаемое в точку вызова функции, после её выполнения.

Функции возвращают реальные значения или значения типа void, которое служит сигналом для компилятора, что никакое значение возвращено, не будет.

Для возврата значения применяется ключевое слово return, за которым следует подлежащее возвращению значение.

При выполнении return происходит мгновенный выход из функции.

 

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

Чтобы предотвратить случайные изменения объекта с помощью возвращенной ссылки или указателя, возвращаемое значение нужно описывать как ссылку или указатель на константу:

const int &a(int i);

 

Способы передачи параметров функции. Передача по значению

Параметры в функции могут передаваться двумя способами: по значению и по ссылке.

void Function(char Ch);

При вызове функция может иметь вид:

Function (Ch2)

В памяти создаётся временная переменная Сh, в нее копируется значение аргумента Ch2. На этом связь между Ch и Ch2 разрывается. Можно изменять значение Ch внутри функции, но это никак не отразится на значении внешней переменной Ch2, указанной в вызове функции в качестве аргумента.

 

По умолчанию в С++ параметры передаются по значению, т.е. значения фактических параметров копируются в память, отведенную для формальных параметров. При этом значения, с которыми работает функция - это ее собственные локальные копии фактических параметров и их изменение на эти параметры не влияет. При окончании функции эти локальные значения теряются. Таким образом, при передаче по значению содержимое фактических параметров не изменяется.

 

Способы передачи параметров. Передача по ссылке

Для реализации передачи по ссылке передименем параметра в заголовке функции должен быть написан ‘&’.

void Function(char &Ch);

В этом случае не происходит копирования значения аргумента в локальную, временную переменную в процедуре. Процедура реально работает не с параметром, а со ссылкой – указателем на место хранения аргумента в памяти. Любые изменения параметра Ch в процедуре, в действительности относятся не к этомупараметру, а к тому аргументу, который был передан при вызове программы.

Передача параметра по ссылке позволяет возвращать информацию из функции в вызывавшую его внешнюю процедуру.

Параметры ссылки

<Тип ссылки>&<имя ссылки>;

Тип ссылки определяется спецификацией типа, за которой следует операция &

Примеры

1. int A = 5;

2. int& rA = A;

3. extern int& rB;

4. int& foo ();

5. void bar (int& rP);

 

65. Способы передачи параметров

Параметры (аргументы) функции, указываемые в списке при определении функции, называются формальными. Параметры, указываемые при вызове функции, называются фактическими.

Способы передачи:

·   по значению [в стек заносятся копии значений аргументов; функция работает с копиями]

* значения фактических параметров копируются в память, отведенную для формальных параметров. При этом значения, с которыми работает функция - это ее собственные локальные копии фактических параметров и их изменение на эти параметры не влияет. При окончании функции эти локальные значения теряются. Таким образом, при передаче по значению содержимое фактических параметров не изменяется

·   по адресу (ссылке) [в стек заносятся копии адресов аргументов и функция осуществляет доступ к ячейкам памяти по этим адресам. Могут изменяться исходные значения аргументов]

* При передаче параметров по ссылке каждый формальный параметр, который необходимо изменить, описывают с типом ссылка. Поскольку ссылка - это другое имя объекта и все действия, которые производятся над ссылкой, являются действиями над самим объектом, то при передаче параметра-ссылки внутри функции мы имеем дело с самим объектом, а не с его локальной копией. Это означает, что действия, произведенные в функции над формальными параметрами проводят к изменению фактических.

 


Поделиться с друзьями:

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.007 с.