&p means address of memory location p
*p means value at memory location p ( this assumes p as pointer )
int &p; this is not defined in C, this would give syntax error
int *p = &x; means p is pointer and you are assigning address of memory location where value of x is stored