I've used C but never C++. What does it mean for a variable's type to be int&? From when I've used it, & would be used to create a pointer to a variable, but the type of that pointer would be int*.
edit:
never mind, I looked it up. It's a "reference" instead of a pointer. Similar, but unlike a pointer it doesn't create a distinct variable in memory of its own.
In my experience, it's rare to see int& in day to day as a regular old lvalue... it essentially just allows you to alias a variable to another name. It's much more common to see them used in function parameters to leverage pass by reference. In C++ pointers usually aren't particularly useful compared to just passing things by reference since stack variables get auto-gc'd it's the preferred style of frameworks like Qt and is extremely easy to use.
never mind, I looked it up. It’s a “reference” instead of a pointer. Similar, but unlike a pointer it doesn’t create a distinct variable in memory of its own.
I'm almost sure it does create a distinct variable in memory. Internally it's still a pointer, specifically a const pointer (not to be confused with a pointer to a const value; it's the address that does not change). Think about it as a pointer that is only ever dereferenced and never used as a pointer. So yes, like the other commenter said, like an alias.
I don't think references are variables: you can't modify them, and AFAIR you can't have pointers to them, with the possible but unlikely exception of non-static member references.