Note: References are a feature specific to C++; they are not part of standard C

A reference variable is an alias for another variable. References are declared using an ampersand:

<type>& <varname> = <other_varname>
For example:
int x;
int& x_ref = x; // x_ref is now equivalent to x

A reference variable declared like this must always be initialized immediately, at the point of declaration. A reference can never be NULL. (Read about the how to track down segmentation faults caused by NULL pointers.)

References can also be used as function parameters:

void func(int& ref_int);

When a variable is passed to a function taking a reference, that variable is not copied; instead, the reference refers back to the original variable's memory. This means that modificaitons to a reference will change the original variable. In order to prevent modifications to the original variable, while still preserving the improved performance (by avoiding the copy), the reference can be made const. (Read more about const correctness and when to use it.)

void func(const int& ref_int);
Declaring a class member to be a reference is valid, and follows the same syntax:
class C
   int& _member_ref;

In this case, the reference must be declared in the initialization list. (Read more about initialization lists and when to use them.) Note that using a reference in a class member is potentially risky because the lifetime of the object is not governed by the class. Often, it is safer to make a copy of the value or explicitly store it by pointer, forcing the initializing code to explicitly provide the memory address.

Read more in the full references tutorial.