Обсудим случай, когда в качестве исходных данных в подпрограмму передается переменная структурированного типа, например имя массива. Определение ее как параметра-значения приведет при работе подпрограммы к созданию копии исходного массива. Можно определить ее как параметр-переменную, в этом случае копия исходного массива не создается, что повышает быстродействие и экономит память. Однако при такой передаче параметра/массива возможно его нежелательное изменение в подпрограмме. В этой ситуации параметр/массив лучше определить как параметр-константу; такой параметр, если он структурированного типа, передается своим адресом, но при этом предусматривается защита от его изменения в подпрограмме.
Параметр-константа описывается в заголовке подпрограммы аналогично параметру-значению, но после служебного слова Const. При вызове подпрограммы в качестве фактического параметра-константы можно использовать любое выражение соответствующего типа, в частном случае константу или переменную.
В функции Max в качестве аргументов определены параметры z, n, представляющие собой имя массива и его размер; результат вычислений - значение максимального элемента в массиве возвращается как значение функции.
Параметр-константу нельзя передавать в другую подпрограмму в качестве фактического параметра!