Это не имеет ничего общего с указателями и адресом памяти, в частности.Проверьте следующую программу
int x = 5;
int y = x;
printf (" x= %d, y = %d\n", x, y);
y++;
printf (" x= %d, y = %d\n", x, y);
Вывод:
x = 5, y = 5
x = 5, y = 6
Изменение y
не влияет на значение x
.То же самое применимо и в вашем случае.
Проще говоря, x
и i
- две разные переменные, у них есть свои собственные значения.Теперь, учитывая тот факт, что x
является указателем и ему присвоено значение адреса i
, вы можете использовать x
, чтобы получить значение, хранящееся в i
.Но это все.
Это не каким-то образом "связывает" две переменные вместе, они все равно могут быть изменены независимо друг от друга.Единственное, что после изменения значения x
вы больше не можете использовать его для доступа к значению, хранящемуся в i
, поскольку оно больше не указывает на адрес i
.