Эта часть кода концептуально делает то же самое для трех указателей (инициализация безопасного указателя):
int* p1 = nullptr;
int* p2 = NULL;
int* p3 = 0;
Итак, каковы преимущества назначения указателей nullptr
над назначением им значений NULL
или 0
?