Вопрос задан 06.06.2019 в 14:34. Предмет Информатика. Спрашивает Ткаченко Екатерина.

Type ref = ^integer; var p, q: ref; Пусть p^=5 и q=p. Что будет выдано на печать в результате

выполнения следующих операторов? q^:=p^+1; if p<>q then p:=nil else q^:=10; if q^=10 then begin p:=q; q^:=20; end; writeln(p^);
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Гуцуляк Саша.
Если q=p, то оба указателя ссылаются  на одно и то же место в памяти, т.е. значения p^ и q^ всегда будут одинаковы.
После p^=5 оба указателя будут ссылаться на 5.
q^:=p^+1 приведет к тому, что cсылка будет на 6, поэтому в первом if условие ложно и выполняется ветка else и оба указателя будут ссылаться на 10.
Во втором if условие истинно, поэтому выполняется ветка then. В ней присваивание
p:=q ничего не меняет, поскольку оба указателя и так уже указывают на одно и то же место в памяти. А после q^:=20 в это место будет записана константа 20, поэтому при выводе p^ мы получаем значение 20.
Ответ: 20



0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос