mt <mahdert@gmail.com> writes:
>what else does it mean?
A pointer does not have a meaning (at least not
a meaning specified by ISO/IEC 9899:1999 (E)).
A pointer has all properties an object has, such
as type, value or alignment. Its type, of course,
is a pointer type.
Related terms from ISO/IEC 9899:1999 (E) are
- null pointer
- null pointer constant
- pointer type
- pointer expression
- valid pointer expression
- pointer parameter
- restricted pointer
- pointer to ... (void, functions, objects, ...)
- variable/constant pointer
- pointer to non-modifiable storage
- address
. However, I believe that ISO/IEC 9899:1999 (E) sometimes
uses »pointer« to refer to an object and sometimes to refer
to a value (for example, when it says that a pointer was
returned by a function). It would be more consistent to
always use »pointer« (for an object of pointer type) and
»address« (for a value of pointer type).
The controlling expression of an if statement shall have
scalar type, the first substatement is executed if the
expression compares unequal to 0.
Since an address (a value of pointer type) is a scalar type,
it can be the controlling expression of an if statement.