РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
66 of 815 menu

Тип nullptr_t

Тип nullptr_t - это фундаментальный тип в C++, который представляет собой тип литерала nullptr. Он был введён в стандарте C++11 для решения проблемы неоднозначности при передаче нулевого указателя в перегруженные функции. Переменная типа nullptr_t может хранить только одно значение - nullptr, и неявно преобразуется к любому типу указателя, но не к целочисленным типам. Это делает его более безопасной альтернативой макросу NULL.

Синтаксис

std::nullptr_t variable = nullptr;

Тип nullptr_t определён в заголовочном файле <cstddef> и доступен в пространстве имён std. Литерал nullptr имеет тип std::nullptr_t.

Пример

Давайте объявим переменную типа nullptr_t и присвоим ей значение nullptr, а затем проверим её на равенство нулевому указателю:

#include <iostream> #include <cstddef> using namespace std; int main() { nullptr_t ptr = nullptr; if (ptr == nullptr) { cout << "ptr is null" << endl; } return 0; }

Результат выполнения кода:

"ptr is null"

Пример

Давайте создадим указатель типа int* и присвоим ему значение nullptr, а затем проверим, что он не указывает на память:

#include <iostream> using namespace std; int main() { int* p = nullptr; if (p == nullptr) { cout << "Pointer is null" << endl; } return 0; }

Результат выполнения кода:

"Pointer is null"

Пример

Давайте используем nullptr в перегруженной функции, чтобы показать, что компилятор выбирает версию для указателя, а не для целого числа:

#include <iostream> using namespace std; void func(int) { cout << "Function with int" << endl; } void func(int*) { cout << "Function with pointer" << endl; } int main() { func(nullptr); return 0; }

Результат выполнения кода:

"Function with pointer"

Смотрите также

  • тип void,
    который используется для обозначения отсутствия типа
  • тип pointer,
    который хранит адрес объекта в памяти
  • тип bool,
    который хранит логические значения true или false
  • тип nullptr,
    который является литералом нулевого указателя
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить