stores memory address location to where the value is stored

type* ptrName

int* num

you use & to get the memory address ( referencing ) you use * on a pointer to get the value ( dereferencing )

int x = 1;
int* pointerX = &x;

passing by reference essentially means passing by pointer