Const
Address = 'ул. Переверткина, 25'; {Строковая константа}
Type
Flot = string[125];
Var
Fstr: Flot; {Описание с заданием типа)
St1: String; {По умолчанию длина строки St1= 255}
St2, St3: string[50];
Nazv: string[280]; (Ошибка, длина строки Nazv превышает 255}
Строка в языке Турбо Паскаль трактуется как цепочка символов. (Для строки из N символов отводится N+1 байт; N байт-для хранения символов строки, а один байт — для значения текущей длины строки).
К любому символу в строке можно обратиться, указав его номер. В самом начале строки (под нулевым номером) расположен байт, содержащий значение текущей длины строки.
0 | … | N+1 | N |
текущая длина строки
Поэтому для определения объема памяти в байтах, требуемой для размещения строки, к значению ее максимальной длины прибавляется 1.
Например, для размещения в памяти переменных Fstr, St1, St2 требуется соответственно 126, 35 и 51 байт (см. приведенный выше пример).
Рассмотрим структуру размещения строки в памяти на следующем примере. Пусть М — максимальная длина строки, L — текущая длина, А — ячейка памяти.
Тогда:
А —содержит величину текущей длины;
А+1 — первый символ строки;
A+L — последний значащий символ;
A+L+1
… — незанятые ячейки памяти
А+М