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