A null pointer holds no usable object address, so code checks it before dereferencing.

Null Pointers

null_pointers.c
#include <stdio.h>

int main(void) {
    int value = 9;
    int useValue = ;
    int *ptr = 0;

    if (useValue) {
        ptr = &value;
    }

    if (ptr != 0) {
        printf("value=%d\n", *ptr);
    } else {
        printf("value=missing\n");
    }

    return 0;
}
#include <stdio.h>

int main(void) {
    int value = 9;
    int useValue = ;
    int *ptr = 0;

    if (useValue) {
        ptr = &value;
    }

    if (ptr != 0) {
        printf("value=%d\n", *ptr);
    } else {
        printf("value=missing\n");
    }

    return 0;
}
null `0` is a null pointer constant when assigned to a pointer.
guard Check a pointer before using `*ptr`.