Well,
a small correction to Swaroop's data.
int &x; // incorrect !!
// a reference must be initialized. Hence, it should be
int &x = i; // i must be a variable one can not write int &x = 10;
once you define a variable, you can not assign it to some one else i.e.
int &x = j; // wrong.
//however, if j has some value, you can do
x = j
if you change the value of x later, value of i would also be changed.
If you change the value of i later, value of x would also be changed,
reference is an alias, hence, x and i would refer to same thing in the memory.
So,
x = 10 would change value of x to 10 and i to 10.
Also, if you now do i = 20, value of i would be 20 and that of x would be 20 again.
Pointers, you would know about them.