int a = 1;
int* x = &a;
//-> &*x equal to &a
If the pointer x has the adress of a and *x points to a's value, compiler couldn't know that *x was referring to exactly a, it could only know a's value if I pass *x.
But turns out it knows. So how does this work? does compiler pass the adress too or is it just cancelling * when I put & like &*x compiles as if its just like x or the other way?