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