Динамические переменные часть 3
type link=^item; item=record v:link; g:integer; end; var p:link;
Тип link – указатель, указывающий на область памяти для записи туда переменных типа item, еще не описанного (исключение из
type link=^item; item=record v:link; g:integer; end; var p:link; begin new(p);
type link=^item; item=record v:link; g:integer; end; var p:link; begin new(p);
type link=^item; item=record v:link; g:integer; end; var p:link; begin new(p); p^.g:=1;
type link=^item; item=record v:link; g:integer; end; var p:link; begin new(p); p^.g:=1; new(p^.v);
type link=^item; item=record v:link; g:integer; end; var p:link; begin new(p); p^.g:=1; new(p^.v);
type link=^item; item=record v:link; g:integer; end; var p:link; begin new(p); p^.g:=1; new(p^.v); p^.v^.g:=2;
type link=^item; item=record v:link; g:integer; end; var p:link; begin new(p); p^.g:=1; new(p^.v); p^.v^.g:=2; new(p^.v^.v);
type link=^item; item=record v:link; g:integer; end; var p:link; begin new(p); p^.g:=1; new(p^.v); p^.v^.g:=2; new(p^.v^.v);
type link=^item; item=record v:link; g:integer; end; var p:link; begin new(p); p^.g:=1; new(p^.v); p^.v^.g:=2; new(p^.v^.v);
77.52K

8_Динамика3

1. Динамические переменные часть 3

1

2. type link=^item; item=record v:link; g:integer; end; var p:link;

p
2

3. Тип link – указатель, указывающий на область памяти для записи туда переменных типа item, еще не описанного (исключение из

правила
языка Паскаль: сначала описать, затем
использовать)
Тип item – запись с двумя полями:
1 поле g – статическая переменная типа integer
2 поле v- динамическая переменная (указатель
на запись такого же типа link)
3

4. type link=^item; item=record v:link; g:integer; end; var p:link; begin new(p);

Адресная часть
p
Часть под значение
ул.Мира
p^
ул.Мира
4

5. type link=^item; item=record v:link; g:integer; end; var p:link; begin new(p);

Адресная часть
p
ул.Мира
Часть под значение
p^.v
p^.g
ул.Мира
p^
5

6. type link=^item; item=record v:link; g:integer; end; var p:link; begin new(p); p^.g:=1;

p^.v
p
1
p^
p^.g
6

7. type link=^item; item=record v:link; g:integer; end; var p:link; begin new(p); p^.g:=1; new(p^.v);

p^.v
p
p^.v^
1
p^.g
p^
7

8. type link=^item; item=record v:link; g:integer; end; var p:link; begin new(p); p^.g:=1; new(p^.v);

p^.v
p
p^.v^
p^.v^.v
1
p^
p^.g
p^.v^.g
8

9. type link=^item; item=record v:link; g:integer; end; var p:link; begin new(p); p^.g:=1; new(p^.v); p^.v^.g:=2;

p^.v
p
p^
1
p^.g
p^.v^.v
p^.v^
2
p^.v^.g
9

10. type link=^item; item=record v:link; g:integer; end; var p:link; begin new(p); p^.g:=1; new(p^.v); p^.v^.g:=2; new(p^.v^.v);

p
p^
p^.v^
p^.v
p^.v^.v
1
2
p^.g
p^.v^.g
p^.v^.v^
10

11. type link=^item; item=record v:link; g:integer; end; var p:link; begin new(p); p^.g:=1; new(p^.v); p^.v^.g:=2; new(p^.v^.v);

p^
p
p^.v
p^.v^
p^.v^.v
1
2
p^.g
p^.v^.g
p^.v^.v^
p^.v^.v^.v
p^.v^.v^.g
11

12. type link=^item; item=record v:link; g:integer; end; var p:link; begin new(p); p^.g:=1; new(p^.v); p^.v^.g:=2; new(p^.v^.v);

p^.v^.v^.g:=3;
p^
p
p^.v
p^.v^
p^.v^.v
1
2
p^.g
p^.v^.g
p^.v^.v^
p^.v^.v^.v
3
p^.v^.v^.g
12

13.

При таком обозначении нельзя обратиться к полю такой
записи
P^^.V
p^
p^^
p^^^
p
13
English     Русский Rules