An ampersand in a type declaration indicates a reference type.
int i = 4;
int& refi = i; // reference to i
int* ptri = &i; // pointer to i
refi = 6; // modifies original 'i', no explicit dereferencing necessary
*ptri = 6; // modifies through the pointer
References have many similarities with pointers, but they're easier to use and less error-prone if address arithmetic is not needed. Also, unlike pointers, references can't be rebound to 'point' to another object after their initialization. Just ask google for references vs. pointers in C++.