В этом коде C я попытался присвоить адреса указателей одной переменной другой с некоторыми изменениями, а затем снова обратно.
#include<stdio.h>
void change(int *x)
{
int *z;
z=x+5;
printf("%u\n",z);
x=z;
printf("%u\n",x);
}
int main()
{
int *p;
int y=2;
p=&y;
printf("%u\n",p);
change(p);
printf("%u\n",p);
return 0;
}
Вывод:
2280640
2280660
2280660
2280640
Может кто-нибудьобъясните, пожалуйста, почему последняя строка вывода 2280640. Я думаю, что это должно быть 2280660.