4.4 Инициализированные переменные

Вверх  Предыдущий  Следующий

По умолчанию переменные в Pascal не инициализируються после их объявления. Любое предположение, что они содержат 0 или любое другое значение по умолчанию, ошибочно: Они могут содержать мусор. Чтобы исправить это, существует понятие инициализированных переменных. Различие с нормальными переменными в том, что их объявление включает начальное значение, как может быть замечено в схеме из предыдущего раздела.

Учитывая объявление:

Var

S : String = 'Это строка инициализации';

Значение следующей переменной будет инициализировано указанным значением. Следующее - еще лучший способ сделать это:

Const

SDefault = 'Это строка инициализации';

 

Var

S : String = SDefault;

Инициализация часто используется, чтобы инициализировать массивы и записи. Для массивов инициализированные элементы должны быть определены, окружены круглыми скобками, и разделены запятыми. Число инициализированных элементов должно быть точно таким же как число элементов в объявлении типа. Как пример:

Var

tt : array [1..3] of string[20] = ('ikke', 'gij', 'hij');

ti : array [1..4] of Longint = (1,3,5,0);

Для константных записей каждый элемент записи должен быть определен в форме Поле : Значение, разделенное точками с запятой, и окруженный круглыми скобками. Как пример:

Type

Point = record

  X,Y : Real

  end;

Var

Origin : Point = (X:0.0; Y:0.0);

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

Замечание:

Нужно подчеркнуть, что инициализированные переменные инициализируются, когда они входят в область видимости, в отличии от типизированных констант, которые инициализируются в программе при запуске. Это - истино и для локально инициализированных переменных. Они инициализируются всякий раз, при вызове подпрограмма. Любые изменения, которые произошли в предыдущем вызове подпрограммы, будут отменены, потому что они снова инициализируются.