Заменить
*p = &x with *p = (unsigned int) &x \\ this works
*p = &x it means x = &x ; Not a syntax to follow
Хотя это не должно выполняться в c, потому что * p, inturns означает значение x, и вы хотите сохранить адрес в значении x, но вы не объявили его как указатель, а просто обычную переменную.
однако с int вы не получите никакой ошибки, кроме предупреждения о том, что
non portable assigment
Я не знаю глубоких корней, но что касается моего расследования, я думаю, что указатели сохраняют адрес в каком-то другом формате, но показывают нам целочисленный формат
* * 1010
Но я настоятельно рекомендую не следовать приведенному выше синтаксису.
люди не всегда используют двойной указатель. Вместо этого обращайтесь к пустому указателю