Pointer — variable with address. Reference — alias.
1int x = 10;2int* ptr = &x; // Pointer3int& ref = x; // Reference45*ptr = 20; // OK6ref = 30; // OK78ptr = nullptr; // OK9// ref = nullptr; // Error!1011ptr++; // OK (pointer arithmetic)12// ref++; // Error!
Key differences: