В C++, NULL — это просто макрос, который раскрывается в 0, так что технически они работают одинаково.
Я рекомендую использовать 0 для присваивания нулевого указателя, потому что:
0 это ключевое слово языка, исключаешь проблемы, связанные с макросамиNULLNULL отличается от 0 или вообще не является целым числомВ коде до стандартизации C++, NULL иногда определялся как неподходящие значения, создавая проблемы совместимости. Хотя это менее распространено в современном C++, это подтверждает, почему стоит избегать макросов.
nullptr (введён в C++11) — это предпочтительный выбор для современного кода на C++. Это отдельный тип нулевого указателя, который даёт лучшую типобезопасность:
int* ptr = nullptr; // Рекомендуется в C++11 и позже
nullptr для новых проектов C++11+0 в старом коде, где nullptr недоступенNULL, чтобы минимизировать проблемы, связанные с макросами, и путаницуNULL — это макрос препроцессора, который раскрывается в 0, делая их функционально эквивалентными для присваивания нулевого указателя в C++.
Новый — ещё не проверен сообществом
Вы