The code you're looking at is C++ code. You do not use the & operator that way in C. In the above code, the & means that 'target' is a reference. References are similar to pointers, except that you don't need to dereference them like you do pointers in C. They also differ in that they can never be NULL. That is to say, a pointer can be NULL, references cannot. Their calling convention is different than with pointer also, but in effect, they're the lazy man's pointer.