Передача аргументов по ссылке и по знач. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Передача аргументов по ссылке и по знач.



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

В Visual Basic передача по ссылке опред-на по умолчанию.

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

В Turbo Pascal и Visual Basic.NET передача по зн-ию опр-на по умолчанию.

Ф-ии в языках программ.

В языке Pascal есть 2 разновидности подпрограмм - процедуры и функции. Структура любой подпрограммы аналог. структуре всей программы. Подпрограмма д.б. описана до того, как она будет использ. в программе или др. подпрограмме. Все параметры подпрограмм можно разделить на локальные (т.е. доступные только ей самой) и глобальные (доступные как подпрограмме, так и вызывающей её программе). Обмен данными с подпрограммой осущ-ся только с пом-ю глобальных параметров.

Структура ф-ии:

FunctionИмя(Список формальных параметров):тип рез-та;

label

const (Описание локальных меток,)

type (констант, типов и переменных)

var

procedure (Описание внутренних процедур)

function (и функций)

begin

Операторы, среди которых хотя бы один, который

присваивает имени функции значение результата

end;

Для вызова ф-ии из осн. программы следует записать выраж-е, состоящее из имени ф-ии и списка параметров ф-ии, указываемого в круглых скобках. function MyFun (i: Integer; s: String): integer; <Тело_функции>;

то вызывать её следует так:

S:=MyFun (5, 'SomeString');

Visual Basic

Синтаксически ф-ия опр-ся

[Public | Private] [Static] Function имя ф-ии (список аргументов) [As тип]

[операторы объявления]

[операторы]

[имя ф-ии = выражение]

[Exit Function] End Function, где Public, Static, Private, Function, Exit Function, End Function — ключ. слова. Function опред-ет обяз. первый оператор функции. End Function — обязат. последний оператор ф-ии:имя ф-ии образ-ся в соотв-ии с общ. правилами образ-ия имен. Имя ф-ии принимает знач-ие и хотя бы один оператор (имя ф-ии = выражение) должен присутствовать внутри ф-ии и вып-ся при выходе из нее. Если никакое знач-ие не присвоено имени ф-ии, то имя ф-ии принимает знач-ие по умолчанию: числ. ф-ия принимает зн-ие 0, ф-ия, объявленная как String, принимает знач-ие пустой строки нулевой длины (“”), ф-ия, объявленная как Variant принимает знач-ие Empty (знач-ие, которое принимает имя ф-ии, называют возвращаемым знач-ем ф-ии — возвращаемое знач-ие).

Список аргументов имеет след. синтаксис:

[Optional] [ByVal|ByRef][ParamArray] имя [()][As тип]

Имя — имя переменной, массива (в случае массива исп-ся имя () без указания границ знач-ия индексов, что позв-ет исп-ть одну ф-ию для разного числа эл-ов массива в каждом конкр. случае), эл-та упр-ия или формы (в послед. двух случаях тип принимает знач-ияControl и Form). Тип м.б. Byte, Boolean, Integer, Long, Currency, Single, Double, Date, String (только переменной длины). As тип необх-мо применять для каждого аргумента.

Список аргументов опред-ет связь по данным между вызывающей (ф-ия, из которой происходит вызов) и вызываемой (ф-ия, которая вызывается) процедурами или ф-ями. Локальные данные, опред-ные внутри ф-ии (кроме тех, что опред-ны в списке general для форм), не могут исп-ся в др. процедурах и функциях.

Exit Function вызывает прекращение вып-я ф-ии и выход из нее в вызывающую программу.

Ф-ия не м.б. опред-ена внутри какой-л. процедуры или ф-ии.

Передача аргументов по ссылке и по знач-ию.

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

В Visual Basic передача по ссылке опред-на по умолчанию.

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

В Turbo Pascal и Visual Basic.NET передача по знач-ию опред-на по умолчанию.



Поделиться:


Последнее изменение этой страницы: 2017-02-10; просмотров: 111; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.14.142.115 (0.007 с.)