Фрагмент описания строковых данных

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

… — незанятые ячейки памяти

А+М


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: