Next: Dereferencing Null or Invalid Pointers, Previous: Dereferencing Pointers, Up: Pointers [Contents][Index]
A pointer value can be null, which means it does not point to
any object. The cleanest way to get a null pointer is by writing
NULL
, a standard macro defined in stddef.h. You can
also do it by casting 0 to the desired pointer type, as in
(char *) 0
. (The cast operator performs explicit type conversion;
See Explicit Type Conversion.)
You can store a null pointer in any lvalue whose data type is a pointer type:
char *foo; foo = NULL;
These two, if consecutive, can be combined into a declaration with initializer,
char *foo = NULL;
You can also explicitly cast NULL
to the specific pointer type
you want—it makes no difference.
char *foo; foo = (char *) NULL;
To test whether a pointer is null, compare it with zero or
NULL
, as shown here:
if (p != NULL)
/* p
is not null. */
operate (p);
Since testing a pointer for not being null is basic and frequent, all
but beginners in C will understand the conditional without need for
!= NULL
:
if (p)
/* p
is not null. */
operate (p);