   not a bit field and is not declared with
   the register storage class specifier

If the operand is of type <type>, the result is of <type> pointer to type.

  Dereferencing operator ( * )
 
The asterisk (*) in a variable expression creates a pointer to a type.

In the expression

  * cast-expression

the cast-expression must have type "pointer to <type>," where <type> is any
data type. The result of the indirection is of type <type>.

If the operand is of type "pointer to function," the result is a function
designator.

If the operand is a pointer to an object, the result is an lvalue
designating that object.
