nullptr
nullptr — ключевое слово, введенное в C++11 для описания константы нулевого указателя. Данная константа имеет тип std::nullptr_t
.
nullptr является константой r-value[1].
До введения nullptr, для обнуления указателей использовался макрос NULL, со значением 0 — целым типом. Это вызывало проблемы (например, при перегрузке функций). Тип nullptr — std::nullptr_t, что решает эти проблемы. Существуют неявные преобразования nullptr к нулевому указателю любого типа и к bool (со значением false), но не к целочисленных типам[2].
В целях обеспечения обратной совместимости, константа 0
также может использоваться в качестве нулевого указателя.
char *pc = nullptr; // верно
int *pi = nullptr; // верно
bool b = nullptr; // верно. b = false.
int i = nullptr; // ошибка
foo(nullptr); // вызывает foo(char *), а не foo(int);
Примечания
- Урок №81. Нулевые указатели . https://ravesli.com (Обновл. 31 Дек 2019).
- Renzo. Десять возможностей C++11, которые должен использовать каждый C++ разработчик . habr (11 июня 2013).
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.