next up previous contents
След.: Интерфейсы Выше: Процедуры Пред.: Автоматические и перенимающие массивы   Содержание


Указатели в процедурах

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

Как уже отмечалось, пустой указатель в качестве необязательного неуказательного аргумента трактуется как отсутствующий. Атрибут INTENT для указателя относится к его статусу связанности, но не к цели. Так, входящий указатель не может быть связан с другой целью или стать пустым.

Если фактический параметр не имеет атрибута TARGET, а формальный -- имеет, то все указатели становятся неопределенными по заврешении процедуры. То же происходит, если формальный аргумент имеет атрибуты TARGET и VALUE.



Ilya A. Chernov 2012-12-19
X