Что будет выдано на печать в результате выполнения следующих операторов? - 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^
, которая является ссылкой на объект в памяти.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д