p^ - означает обращение не к адресу, а к значению по этому адресу.
Сначала p и q владеют разными знаниями. Потом оба становится равным 2.
Т.к. q не равно p, то если их значения равны (а они равны по 2), то q теперь имеет такой же адрес как у p.
Дальше их адреса совпадают. Итого, ответ 2.