null和nullptr的区别

这篇具有很好参考价值的文章主要介绍了null和nullptr的区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题引出

在我们看代码的时候,经常会看到null和nullptr,有的人用null,而有的人用nullptr
这两个到底有什么区别呢?

nullptr和null都表示一个空指针,但二者的含义和用法略有不同。

1. nullptr

nullptr是C++11引入的关键字,用于表示空指针,其含义与NULL和0不同。NULL和0在C++中被广泛使用表示空指针,但在一些情况下会产生二义性(例如在重载函数时)。而nullptr仅能被赋值给指针类型,不具有整数类型,能够减少由NULL和0引起的问题。

例如:

int* p1 = nullptr;
double* p2 = nullptr;

2. null

null是一个宏定义,定义在一些头文件中(例如cstdlib,cstdio,cstring等),表示空指针的常量值。在C++中,null可以用0或NULL代替。但在C语言中,只能使用NULL表示空指针,因为在C语言中,0可以被视为整数类型的字面值。

例如:

int* p1 = null;
double* p2 = null;

无论是nullptr还是null,都可以表示空指针,使用场景也差不多,具体使用哪一个取决于个人习惯及具体情况。但建议在C++11及以上版本中使用nullptr。文章来源地址https://www.toymoban.com/news/detail-651119.html

到了这里,关于null和nullptr的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • null和undefined区别

    1.undefined,表示无值。 比如下面场景: a. 变量被声明了,但是没有被赋值; b. 调用函数的时候,应该给函数传参却没有给函数传这个参数打印出来就是 undefined; c. 访问一个对象中没有的属性; d. 函数没有返回值时,默认就会返回undefined。 2.null表示此时还不是对象,例如在

    2024年02月11日
    浏览(51)
  • JS中undefined和null的区别

    JavaScript 真是一个特殊的语言, 其他语言都只有一个表示 \\\"无\\\" 的值, 比如 Java 语言用的是 null, C 语言用的是 NULL, Python 语言用的是 None, Ruby 语言用的是 nil。只有 JS 里面表示 \\\"空\\\" 的有两个, 一个是 undefined, 一个是 null。 很多朋友在刚开始学习的时候, 都会有一个疑问, 就是 undef

    2024年02月04日
    浏览(35)
  • MySQL 中NULL和空值的区别

    简介 NULL也就是在字段中存储NULL值,空值也就是字段中存储空字符(’’)。 区别 1、空值不占空间,NULL值占空间。当字段不为NULL时,也可以插入空值。 2、当使用 IS NOT NULL 或者 IS NULL 时,只能查出字段中没有不为NULL的或者为 NULL 的,不能查出空值。 3、判断NULL 用IS NULL 或者

    2024年02月15日
    浏览(55)
  • C#中 NULL,““,String.Empty三者的区别

        (1)NULL         null 是表示不引用任何对象的空引用的文字值。null 是引用类型变量的默认值。那么也只有引用型的变量可以为NULL,如果int i=null,的话,是不可以的,因为Int是值类型的。     (2)\\\"\\\"和String.Empty        这两个都是表示空字符串。只不过\\\"\\\"理论上

    2024年02月13日
    浏览(32)
  • 从C语言到C++(第一章_C++入门_下篇)内联函数+auto关键字(C++11)+范围for +nullptr

    目录 1. 内联函数 1.1 内联函数的概念 1.2 内联函数的特性 1.3 宏的优缺点和替代方法 2. auto(C++11) 2.1 改版前的auto 2.2 C++11的auto 2.3 auto 的使用场景 2.4 使用auto的注意事项 3. 范围 for(C++11) 3.1 范围 for 的用法 3.2 范围 for 的使用条件 4. 指针空值 nullptr 4.1 C++ 98 中的指针空

    2023年04月21日
    浏览(47)
  • java基础08-Java中的null和空字符串的区别是什么?

    null表示一个变量没有引用任何对象,而空字符串表示一个字符串变量引用了一个长度为0的字符串。 null:表示 一个变量没有引用任何对象 。也就是说,这个变量还 没有被分配内存 。如: 如上,str是一个String类型的变量,但目前它没有被引用任何对象,所以它的值为null。

    2024年01月22日
    浏览(40)
  • 【Java】后端开发语言Java和C#,两者对比注解和属性的区别以及作用

    欢迎来到《小5讲堂》 大家好,我是全栈小5。 这是《Java》序列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。 温馨提示:博主能力有限,理解水平有限

    2024年01月16日
    浏览(53)
  • 计算机语言 之【C++】入门级知识讲解(命名空间,C++输入输出,缺省参数,函数重载,引用,内敛函数,auto关键字,for循环,指针空值nullptr)

    三点睡六点起,阎王夸我好身体 不到三点我不睡,太平间里抢C位 目录: 前言: 本片博客是以学习过C语言之后进入C++学习为前提,讲解C++入门级知识,为C++之后的学习做铺垫 –❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀-正文开始-❀–❀–❀–❀–❀

    2024年04月11日
    浏览(134)
  • Django的数据库操作模型的字段参数blank和null有什么区别?什么叫表单验证?

    在Django的数据库操作模型中,字段参数 blank 和 null 用于定义模型字段的验证规则和数据库约束。它们的区别如下: blank :这个参数用于验证表单数据的有效性。当字段的 blank 参数设置为 True 时,表明该字段可以为空值或者不填写任何内容,不会触发验证错误。换句话说,

    2024年02月11日
    浏览(41)
  • 在C#语言里对NULL的技术处理

    在 C# 中,null 是一个特殊存在,表示缺少值。Null 可以分配给引用类型和可为 null 的值类型,但不能分配给不可为空的值类型。在 C# 中处理 null 值是编写可靠且可靠的代码的一个重要方面。在本文中,我将讨论一些在 C# 中处理 null 值的最常用技术。 null合并操作符(??)是一个简

    2024年02月08日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包