The pointer operators & (reference) and * (dereference) are different from the bitwise math operator & and the arithmetic operator *.
Pointers are one of the more complicated subjects for beginners in learning C, and it is possible to write many useful Arduino sketches without ever encountering pointers. However, for manipulating certain data structures, the use of pointers can simplify the code, improve its efficiency, and generally provide many benefits that would be difficult to achieve without the use of pointers.
Introducing pointers is somewhat outside the scope of this documentation. However, a good pointer tutorial is available. Also see the Wikipedia article on pointers, especially the section on pointers in C.
License and Attribution
Portions of this page were adapted from the Arduino Reference Documentation, which is released under a Creative Commons Attribution-ShareAlike 3.0 License.