【问题标题】:Is nullptr in C++ the same as null in C#?C++ 中的 nullptr 与 C# 中的 null 相同吗?
【发布时间】:2014-04-28 08:34:39
【问题描述】:

C++ 中的 nullptr 和 C# 中的 null 一样吗?

似乎没有人在 Google 或 Stackflow 上问过这个问题。

【问题讨论】:

  • 在远处,是的。取决于你愿意在你对它们相同的定义中走多远。
  • 我认为在内心深处是0 那个旧的NULL 但不确定。
  • @pranitkothari,NULL 本质上是 0。nullptr 完全不同。
  • @chris 是的,但我说的是内部结构。不过,我不确定。

标签: c# c++ null nullptr


【解决方案1】:

一般是的,两者都将空值分配给类似类型的指针

  • C#:类、接口、委托或指针类型
  • C++:指针类型或指向成员的指针类型

它不会转换为任何一种语言的数值。一个区别是在 C++ 中nullptr 可以转换为bool。这在 C# 中是不正确的

【讨论】:

    【解决方案2】:

    是的。在 C++ 中,nullptr 等同于 Java、C# 和各种其他语言中的 null。在 C++11 之前,使用 NULL(这是一个定义为 0 的宏)是标准的;但是,nullptr 实际上确保它只能在指针的上下文中使用(而 NULL,由于被定义为 0,也可以用作返回 int 的函数的返回值而不是一个违反直觉的指针),尽管nullptrNULL 都可以隐式转换为bool

    【讨论】:

      【解决方案3】:

      是的,它是一样的。它是无效的指针。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-05-12
        • 1970-01-01
        • 1970-01-01
        • 2014-10-28
        • 2012-03-14
        • 2011-11-04
        • 1970-01-01
        相关资源
        最近更新 更多