Ваш код обращается к памяти, которой он не владеет, и результаты этого не определены.
Все, что ваш код имеет право делать в том виде, в котором он написан в настоящее время, - это чтение и запись из области памяти размером sizeof(int)
в &i
, а другой размером sizeof(int*)
в &p
.
Следующие строки нарушают эти ограничения, используя адреса памяти вне диапазона, в котором вам разрешено читать или записывать данные.
*++p=2;
printf("\n%d",*p);
printf("\n%d",*(&i+1));