Что будет выдано на печать в результате выполнения следующих операторов? - Pascal
Формулировка задачи:
Листинг программы
- type ref = ^integer;
- var p, q: ref;
Листинг программы
- p^:=q^;
- if p=q then p:=nil else if p^=q^ then q:=p;
- if p=q then q^:=4;
- writeln(p^);
Решение задачи: «Что будет выдано на печать в результате выполнения следующих операторов?»
textual
Листинг программы
- type ref = ^integer;
- var p, q: ref; pp, qq: Integer;
- begin
- pp:=5; qq:=3; p:=@pp; q:=@qq;
- p^:=q^;
- if p=q then p:=nil else if p^=q^ then q:=p;
- if p=q then q^:=4;
- writeln(p^);
- end.
Объяснение кода листинга программы
- Создается тип данных
ref
, который представляет собой указатель на целое число. - Создаются две переменные
p
иq
типаref
. - Создаются две переменные
pp
иqq
типаInteger
. - Значения переменных
pp
иqq
присваиваются переменнымp
иq
соответственно. - Переменные
p
иq
указывают на те же самые объекты в памяти, поэтому они равны. - Если
p
иq
равны, то переменнойp
присваивается значениеnil
. - Если
p
иq
не равны, но их указатели указывают на одно и то же место в памяти, то переменнойq
присваивается значениеp
. - Если предыдущие условия не выполняются, то переменной
q
присваивается значение4
. - Выводится значение переменной
p^
, которая является ссылкой на объект в памяти.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д