Reference
Indirect access to a value — instead of the value itself you have a pointer/handle. Allows multiple variables to share the same underlying object.
Distinct from pointer: reference is often "non-null" + automatic dereferencing (Java, C#, JS, Python, Rust). Pointer (C, C++) can be NULL and must be explicitly dereferenced. Pass-by-reference vs pass-by-value: what happens when you pass into a function. Rust's borrow checker controls references strictly (one mutable XOR many immutable). "Reference counting" is a kind of GC (Swift, CPython).