c:=X[100];
d:=RealAr(X)[100];
При старте программы выделяется память для переменных X, Y, c и d, соответственно 3000, 6000, 6 и 6 байтов. Поле X имеет следующую структуру:
X+0 X+6 X+12 X+18 . . . X+2988 X+2994
. . .
На этой схеме снизу указаны элементы массива X, сверху - их адреса. Каждый элемент занимает 6 байтов памяти. В частности, элемент имеет адрес X+(100-1) × 6 = X+594.
Поле Y имеет аналогичную структуру, последний элемент расположен по адресу Y+5994.
Запись RealAr(X) означает, что в данном случае поле X интерпретируется как переменная, имеющая тип RealAr. Поскольку описание RealAr определяет одномерный массив с элементами типа real, то элемент RealAr(X)[100] имеет тот же адрес, что и элемент . Следовательно, переменные c и d в приведенном выше примере получают одинаковые значения.
Элементы матрицы расположены в памяти по строкам.
Пример 2.
Type Rem = array[1..100,1..100] of real;
MatrixA = array[1..20,1..30] of real;
Var A : MatrixA; B : Rem;
c,d : real;