В программах на языке C++ значение указателя, равное нулю, используется в качестве "неопределенного" значения. Например, если какая-то функция вычисляет значение указателя, то чаще всего нулевое значение возвращается в случае ошибки.
long* foo(void);. . .long* resPtr;if ((resPtr = foo()) != 0) { // использовать результат} else { // ошибка}
В языке C++ определена символическая константа NULL для обозначения нулевого значения указателя.
Такое использование нулевого указателя было основано на том, что по адресу 0 данные программы располагаться не могут, он зарезервирован операционной системой для своих нужд. Однако во многом нулевой указатель – просто удобное соглашение, которого все придерживаются.