The indirection operator * is used to access an object referenced by a pointer:
Given a pointer, ptr, *ptr is the object referenced by ptr.
You must always distinguish between the pointer ptr and the addressed object *ptr.
long a = 10, b, // Definition of a, b *ptr; // and pointer ptr. ptr = &a; // Let ptr point to a. b = *ptr;
This assigns the value of a to b, since ptr points to a.
The assignment b = a; would return the same result.
The expression *ptr represents the object a, and can be used wherever a could be used.
The indirection operator * has high precedence, like the address operator &.
Both operators are unary, that is, they have only one operand.