int * x;
int v = 7;
Given this code, what is the difference between
1. x = &v , and
2. *x = v ?
I understand that
Given the statement:
int v = 7;
v has some location in memory. Doing:
x = &v;
will "point" x to the memory location of v, and indeed *x will have the value 7.
However, in this statement:
*x = v;
you are storing the value of v at the address pointed at by x. But x is not pointing at a valid memory address, and so this statement invokes undefined behavior.
So to answer your question, no, the 2 statements are not equivalent.