Основы программирования на языке Turbo Pascal. Беляева И.В. - 233 стр.

UptoLike

Составители: 

233
Пример:
Объявим несколько переменных указательного типа и несколько
переменных базовых типов (базовым типом по отношению к
указательному типу называется тот тип, от которого произведен
указательный, например, базовым для типа PWorker является тип
TWorker, а базовым типом для PChar – Char).
Var
{указатели}
pw:PWorker;
pi:PInteger;
pc: PChar;
p : Pointer;
{переменные базовых типов}
w:TWorker;
i:Integer;
c: Char;
Заметим, что все указатели в Turbo Pascalе занимают 4 байта памяти.
После несложных вычислений выясним, что одна переменная типа
TWorker занимает 124 байта памяти. Вспомним, что переменные типа
Integer и Char занимают соответственно 2 и 1 байт.
Зная размеры каждой переменной и зная адрес первой из
объявленных переменных, можно вычислить адреса оперативной памяти,
по которым расположены все
остальные объявленные переменные. Дело в
том, что компилятор располагает все объявленные переменные друг за
другом, сначала первую, затем вторую и так далее. Пусть адрес первой из
объявленных переменныхпеременной pw равен $561F005E (значение
взято реальное).
Тогда адреса всех остальных переменных будут следующими:
имя переменной длина переменной адрес
pw 4 $561F005E
pi 4 $561F0062
pc 4 $561F0066
p 4 $561F006A
w 124 (127=$7C) $561F006E
i 2 $561F00EA
c 1 $561F00EC