Передача массивов в качестве параметров


Стандартный прием Паскаля состоит в описании массива как типа данных и указании этого типа для параметра подпрограммы. Однако таким способом удается обрабатывать только динамические массивы и статические массивы заранее заданной длины. Часто требуется, чтобы подпрограмма не ограничивалась конкретными размерами массива. Например, функция, вычисляющая сумму всех элементов массива, должна уметь получать в качестве параметра массив любой длины. Динамические массивы использовать не всегда удобно и не всегда правильно, так как они ухудшают эффективность работы программы.

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

procedureSum( A: array of Byte );

Теперь массив, описанный как varAr: array [1..25] ofByte; можно без проблем передавать в процедуру Sum: Sum(Ar);

При этом внутри тела подпрограммы действуют следующие правила:
>> Нумерация элементов массива начинается с нуля (число элементов можно определить с помощью стандартной функции SizeOf);
>> Функция High возвращает верхнюю границу массива (равную Size0f()-1);
>> Копирование массива одним оператором присваивания не разрешается;
>> Вместо массива в подпрограмму может быть передана обычная переменная соответствующего типа. Внутри подпрограммы она будет представлена в виде массива из одного элемента (с индексом 0).








Дата добавления: 2014-12-01; просмотров: 1022;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

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

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.