Как передать массив как параметр?
Falk0ner, вс, 06/07/2008 - 15:34.
Вариант 1.
внутри процедуры создаётся копия массива, внутри процедуры работа осуществляется только с копией данных. Недостаток: если а имеет большой размер то передача его в процедуру будет долгой и с большими затратами памяти, так как процедура должна будет скопировать всё содержимое и выделить память для копии.
Вариант 2.
внутри процедуры код работает именно с переменной а и её содержимым
Вариант 3.
внутри процедуры запрещено изменять данные переменной а
Вариант 4.
при входе в процедуру массив рассматривается как пустой, но после выполнения процедуры можно получить значения
Передача параметров процедуры и функции в дельфи:
Type Ta=array of something;
Var a:Ta;
Var a:Ta;
Вариант 1.
Procedure Proc(a:Ta);
внутри процедуры создаётся копия массива, внутри процедуры работа осуществляется только с копией данных. Недостаток: если а имеет большой размер то передача его в процедуру будет долгой и с большими затратами памяти, так как процедура должна будет скопировать всё содержимое и выделить память для копии.
Вариант 2.
Procedure Proc(var a:Ta);
внутри процедуры код работает именно с переменной а и её содержимым
Вариант 3.
Procedure Proc(const a:Ta);
внутри процедуры запрещено изменять данные переменной а
Вариант 4.
Procedure Proc(out a:Ta);
при входе в процедуру массив рассматривается как пустой, но после выполнения процедуры можно получить значения
Автор: Vit
Отправить комментарий