нулл - специальный указатель, который явным образом свидетельствует о неверности указателя. Иначе переменная будет определена случайно. После этого она может указывать на нулл, на несуществующую память или на существующую память. При обращении к ней возникнут странные проблемы, а нулл явным образом позволяет этого избегать.
Так он, в любом случае, должен быть чему-то равен, вот и пишут NULL по умолчанию.
Чтобы не обратиться к указателю, который указывает в никуда.
Чтобы избавится от неопределённого поведения! И что данный указатель ни на что не указывает. И для самого процессора легче отлавливать непослушный указатель который обратится на нулевой адрес (void*)0 чтобы с генерировать исключение. Так что всегда обнуляй указатель в конструкторе класса!