double arrow

Параметры-значения


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

void В( int z );

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

Например, пусть в вызывающей функции описаны переменные и им до вызова метода присвоены значения:

int х = 1;

sbyte с = 1;

Тогда вызов метода В, заголовок которого был описан ранее, может быть осуществлен, например, так:

В( х ); В( с ); В( 10 ); В( х + 2*с );

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

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




Основное достоинство способа передачи параметров по значению — защита значений переменных в вызывающем блоке от непреднамеренных изменений. Недостаток его — увеличение объёма используемой памяти.







Сейчас читают про: