Consider this:
void* x = &x;
printf("%p\n", x);
Surprisingly, it compiles and runs with the output:
7ffb2f7248
How is it possible for x to take the address of itself when x hasn't been created yet?
Edit: Note that in this case there is no ambiguity present in regards to it's assignment, making it clear as to what exactly is questioned.