A null pointer constant - это integer literal нулевое значение или prvalue типа std::nullptr_t. Константа нулевого указателя может быть преобразована в тип указателя; результат относится к null pointer value этому типу и отличается от любого другого значения указателя на объект или типа указателя на функцию. Такое преобразование называется файлом null pointer conversion. Два значения нулевого указателя одного и того же типа должны сравниваться как равные. Преобразование константы нулевого указателя в указатель на тип, квалифицированный cv, является одним преобразованием, а не последовательностью преобразования указателя, за которым следует qualification conversion. Константа нулевого указателя целочисленного типа может быть преобразована в значение типа pr std::nullptr_t. [ Note: Результирующее значение prvalue не является значением нулевого указателя. ] — end note
Prvalue типа «указатель на cv T», где T является типом объекта, может быть преобразовано в prvalue типа «указатель на cv void». При pointer value этом преобразовании не изменяется.
Prvalue типа «указатель на cv D», где D является типом класса, может быть преобразовано в prvalue типа «указатель на cv B», где B - base class из D. Если B - inaccessible или ambiguous базовый класс D, программа, которая требует этого преобразования, плохо сформирована. Результатом преобразования является указатель на подобъект базового класса объекта производного класса. Значение нулевого указателя преобразуется в значение нулевого указателя целевого типа.