Является ли nullptr в C++ таким же, как null в C#?

является ли nullptr в C++ таким же, как null в C#?

похоже, никто не задал этот вопрос в Google или Stackflow.

3 ответов


В общем да, оба присваивают нулевое значение указателю типа

  • C#: типы классов, интерфейсов, делегатов или указателей
  • C++: типы указателей или тип указателя на член

он не преобразуется в числовые значения на любом языке. Одно отличие заключается в том, что в C++ nullptr можно использовать bool. Это неверно в C#


да. В C++, nullptr эквивалентно null в Java, C# и различных других языках. До C++11 он был стандартным для использования NULL (который был макросом, определенным как 0); однако, nullptr фактически гарантирует, что он может использоваться только в контексте указателей (тогда как NULL, в силу того, что он был определен как 0, также может использоваться в качестве возвращаемого значения для функции, которая возвращает int вместо указателя, что противоречит интуиции), хотя оба nullptr и NULL неявно конвертируются в bool.


Да, это то же самое. Это недопустимый указатель.